/ tabris /

记录详情

Wrong Answer

/in/foo.cc: In function 'int main()':
/in/foo.cc:43:10: warning: comparison with string literal results in unspecified behavior [-Waddress]
    if(s=="query")printf("%d\n",shu_bangpai);
          ^~~~~~~
/in/foo.cc:44:10: warning: comparison with string literal results in unspecified behavior [-Waddress]
    if(s=="fight"){
          ^~~~~~~
/in/foo.cc:68:10: warning: comparison with string literal results in unspecified behavior [-Waddress]
    if(s=="tempt"){//x诱惑y 
          ^~~~~~~
/in/foo.cc:78:10: warning: comparison with string literal results in unspecified behavior [-Waddress]
    if(s=="revolt"){//反叛,传位。 
          ^~~~~~~~
# 状态 耗时 内存占用
#1 Wrong Answer 2ms 3.066 MiB
#2 Wrong Answer 2ms 1.742 MiB
#3 Wrong Answer 10ms 2.574 MiB
#4 Accepted 2ms 1.816 MiB
#5 Wrong Answer 4ms 1.941 MiB
#6 Wrong Answer 19ms 3.195 MiB

代码

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=100005;
int fa[maxn<<1],size[maxn<<1],mapped[2*maxn],hui[2*maxn];
inline int read(){
	int x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=x*10+ch-'0';
		ch=getchar();
	}
	return x*f;
}
int n,m,x,y,fx,fy,cnt,next;
int getfa(int x){
	if(fa[x]==x)return x;
	return fa[x]=getfa(fa[x]);
}
inline void gai(int yuan,int now){
	mapped[yuan]=now;
	hui[now]=yuan;
}
int main(){
	int t;
	t=read();
	for(int k=1;k<=t;k++){
		printf("Case #%d:\n",k);
		memset(mapped,0,sizeof(mapped));
		memset(hui,0,sizeof(hui));
		n=read();m=read();
		for(int i=1;i<=n;i++){fa[i]=i;size[i]=1;mapped[i]=i;}
		cnt=n;
		int shu_bangpai=n;
		for(int i=1;i<=m;i++){
			char s[105];
			scanf("%s",s);
			if(s=="query")printf("%d\n",shu_bangpai);
			if(s=="fight"){
				x=read();y=read();
				fx=getfa(mapped[x]);fy=getfa(mapped[y]);
				if(fx==fy)continue;
				if(size[fx]==size[fy]){
					printf("Either is winner!\n");
					continue;
				}
				shu_bangpai--;
				if(size[fx]>size[fy]){
					size[fx]+=size[fy];
					size[fy]=0;
					fa[fy]=fx;
					printf("%d is winner!\n",x);
					continue;
				}
				if(size[fx]<size[fy]){
					size[fy]+=size[fx];
					size[fx]=0;
					fa[fx]=fy;
					printf("%d is winner!\n",y);
					continue;
				}
			}
			if(s=="tempt"){//x诱惑y 
				x=read();y=read();
				fx=getfa(mapped[x]),fy=getfa(mapped[y]);
				if(fx==fy)continue;
				if(size[fy]==1)shu_bangpai--;
				mapped[y]=++cnt;
				fa[mapped[y]]=mapped[x];
				size[fx]++;
				size[fy]--;
			}
			if(s=="revolt"){//反叛,传位。 
				x=read();
				fx=getfa(mapped[x]);
				if(size[fx]==1)continue;
				size[fx]--;
				mapped[x]=++cnt;
				fa[mapped[x]]=mapped[x];
				size[mapped[x]]=1;
				shu_bangpai++;
			}
		}
	}
}

信息

递交者
类型
递交
题目
幼儿园战争
语言
C++
递交时间
2019-10-02 19:16:08
评测时间
2019-10-02 19:16:08
评测机
分数
32
总耗时
40ms
峰值内存
3.195 MiB