思路已经教练认证,没有问题,对拍了一下,也没查出有什么问题,别问为什么没用deque,问就是会MLE
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 2000005
int q,n,a,b,l[N],t[N],r[N],cnt,k[N];string s;
int main(){
cin>>q,n=N>>1;
for(int i=1;i<=q;i++){
cin>>s>>a;
if(s=="push_back"||s=="push_front"){
cnt++,cin>>t[cnt];
if(k[a]==0) l[a+n]=r[a+n]=a+n;
if(s=="push_front") r[cnt]=r[a+n],l[r[a+n]]=cnt,r[a+n]=cnt,l[cnt]=a+n;
else l[cnt]=l[a+n],r[l[a+n]]=cnt,l[a+n]=cnt,r[cnt]=a+n;
k[a]++;
}else if(k[a]){
if(s=="pop_front"||s=="pop_back"){
if(s=="pop_front") l[r[r[a+n]]]=a+n,r[a+n]=r[r[a+n]],k[a]--;
else r[l[l[a+n]]]=a+n,l[a+n]=l[l[a+n]],k[a]--;
}else if(s=="size") cout<<k[a]<<endl;
else if(s=="front") cout<<t[r[a+n]]<<endl;
else cout<<t[l[a+n]]<<endl;
}
}fclose(stdin),fclose(stdout);
return 0;
}