纯萌新,为什么 CE?
查看原帖
纯萌新,为什么 CE?
540363
AKPC楼主2024/8/14 16:06

rt

#include <bits/stdc++.h>
using namespace std;
#define fr first
#define sc second
inline int read(){
	int res=0,f=1;char c=getchar();
	while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
	while (c>='0'&&c<='9') {res=res*10+(c-'0');c=getchar();}
	return res*f;
}
const int N=1e6+5;
struct Deque{
	vector<int>s1,s2,ns,_ns;
	int l1=-1,l2=-1;
	void spilt(int op){
		if (op) swap(s1,s2);
		l1=-1,l2=-1;
		ns.clear(),_ns.clear();
		int lengths=s1.size();
		for (int i=1;i<=lengths/2;i++){
			s2.push_back(s1.back());
			s1.pop_back();
		}
		while (s2.size()){
			if (l1!=-1) l1=s2.back();
			ns.push_back(s2.back()),s2.pop_back();
		}
		while (s1.size()){
			_ns.push_back(s1.back());
			s1.pop_back();
		}
		while (_ns.size()){
			if (l2!=-1) l2=s2.back();
			s2.push_back(_ns.back()),_ns.pop_back();
		}
		s1=ns;
	}
	void push_back(int x){
		if (l2==-1) l2=x;
		s2.push_back(x);
	}
	void push_front(int x){
		if (l1==-1) l1=x;
		s1.push_back(x);
	}
	void pop_back(){
		s2.pop_back();
		if (!s2.size()&&s1.size()>=2) spilt(0);
	}
	void pop_front(){
		s1.pop_back();
		if (!s1.size()&&s2.size()>=2) spilt(1);
	}
	int size(){
		return s1.size()+s2.size();
	}
	int front(){
		if (s1.empty()) return l2;
		return s1.back();
	}
	int back(){
		if (s2.empty()) return l1;
		return s2.back();
	}
}q[N];
signed main(){
	int T=read();
	while (T--){
		string s;
		cin>>s;
		if (s=="push_back"){
			int a=read(),x=read();
			q[a].push_back(x);
		}
		if (s=="push_front"){
			int a=read(),x=read();
			q[a].push_front(x);
		}
		if (s=="pop_back"){
			int a=read();
			if (q[a].size()==0) continue;
			q[a].pop_back();
		}
		if (s=="pop_front"){
			int a=read();
			if (q[a].size()==0) continue;
			q[a].pop_front();
		}
		if (s=="size"){
			int a=read();
			cout<<q[a].size()<<'\n';
		}
		if (s=="front"){
			int a=read();
			if (q[a].size()==0) continue;
			cout<<q[a].front()<<'\n';
		}
		if (s=="back"){
			int a=read();
			if (q[a].size()==0) continue;
			cout<<q[a].back()<<'\n';
		}
	}
	return 0;
}

编译信息

编译失败

Nothing is compiled: OUTPUT exceeds.

2024/8/14 16:06
加载中...