这题合并栈让我们想到了左偏树. 我们可以维护val值为时间,dis值为size的左偏树,定义两个根root1和root2,表示两个栈的栈顶,建大根的左偏树. 接下来的插入,删除,两个栈合并都是左偏树的基本操作,直接写即可,代码里有注释. #include<bits/stdc++.h> #define maxn 100001 #define inf 0x7f7f7f7f using namespace std; int sum[maxn],ch[maxn][2],dis[maxn],root1,…