60pts,TLE4个点求优化
  • 板块P9518 queue
  • 楼主xiaoyang111
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/8/12 22:03
  • 上次更新2023/11/3 04:11:19
查看原帖
60pts,TLE4个点求优化
890311
xiaoyang111楼主2023/8/12 22:03

代码:

#include <iostream>
#include <list>
using namespace std;
int main(){
	list<string> l;
	int n;
	cin >> n;
	string t1="12345678910",t2="12345678910";
	for (int i=0;i<n;++i){
		char sss[7];
		scanf("%s",sss);
		string str(sss);
		if (str=="start"){
			if (t1!="12345678910"){
				l.emplace_back(t1);
				t1="12345678910";
				if (t2!="12345678910"){
					l.emplace_back(t2);
					t2="12345678910";
				}
			}
			if (l.size()==0){
				printf("Error\n");
			}
			if (l.size()==1){
				t1=l.front();
				l.pop_front();
				printf("%s\n",t1.c_str());
			}else if (l.size()>=2){
				t1=l.front();
				l.pop_front();
				t2=l.front();
				l.pop_front();
				printf("%s %s\n",t1.c_str(),t2.c_str());
			}
		}
		if (str=="arrive"){
			char ssss[15];
			scanf("%s",ssss);
			string x(ssss);
			bool flag=false;
			for (const auto &item : l){
				if (item==x){
					flag=true;
					break;
				}
			}
			if (flag || x==t1 || x==t2){
				printf("Error\n");
			}else{
				l.emplace_back(x);
				printf("OK\n");
			}
		}
		if (str=="leave"){
			char ssss[15];
			scanf("%s",ssss);
			string x(ssss);
			int s1=l.size(),s2;
			l.remove(x);
			s2=l.size();
			if (s1==s2){
				printf("Error\n");
			}else{
				printf("OK\n");
			}
		}
	}
	return 0;
}
2023/8/12 22:03
加载中...