迷惑,段错误
查看原帖
迷惑,段错误
389797
Nemonade楼主2022/1/13 10:03
#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int read(){
	int x=0;bool flag=false;char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-') flag=true;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
	return flag?~x+1:x;
}
inline void write(int x){
	if(x<0){putchar('-');x=(~x+1);}
	if(x/10) write(x/10);
	putchar((x%10)^48);
	return;
}
const int N=1005;
const int M=1e6+5;
queue<int> q;
queue<int> qq[N];
int bin[M],n;
int vis[N];
char s[10];
signed main(){
	int cnt_sj=0;
	while(++cnt_sj){
		n=read();
		if(n==0) break;
		memset(vis,0,sizeof vis);
		for(int i=1;i<=n;++i){
			int tmp=read();
			for(int j=1;j<=tmp;++j){int x=read();bin[x]=i;}
		}
		printf("Scenario #%d\n",cnt_sj);
//		while(!q.empty()) q.pop();
//		for(int i=1;i<=n;++i) while(!qq[i].empty()) qq[i].pop();
		while(scanf("%s",s)){
			if(s[0]=='S') break;
			if(s[0]=='E'){
				int x=read(),y=bin[x];
				if(vis[y]) qq[y].push(x);
				else q.push(y),qq[y].push(x),vis[y]=true;
			}
			if(s[0]=='D'){
				write(qq[q.front()].front());puts("");
				if(!qq[q.front()].empty()) qq[q.front()].pop();
				if(qq[q.front()].empty()) q.pop();
			}
		}
		puts("");
	}
	return 0;
}

感觉没有问题啊。。隔壁大佬也segment fault。。。

2022/1/13 10:03
加载中...