为什么100pts->RE?
查看原帖
为什么100pts->RE?
572587
cmrhhh楼主2025/2/6 10:00

不加 4141 行就 RE 了,为什么?

code :
#include<bits/stdc++.h>
using namespace std;
const int maxn=30;
int sg[maxn+10],a[maxn+10];
int main(){
	ios::sync_with_stdio(0),cin.tie(0);
	for(int i=1;i<maxn;++i){
		int flg[maxn+10];
		memset(flg,0,sizeof flg);
		for(int j=i-1;j>=0;--j){
			for(int k=j;k>=0;--k){
				flg[sg[j]^sg[k]]=1;
			}
		}	
		int m=0;
		while(flg[m])m++;
		sg[i]=m;
	}
	int t;cin>>t;
	while(t--){
		int n,ans=0;cin>>n;
		for(int i=1;i<=n;++i) {
			cin>>a[i];
			if(a[i]&1)ans^=sg[n-i];
		}
		if(!ans)cout<<"-1 -1 -1\n0\n";
		else {
			int aa=99,bb=0,cc=0,cnt=0;
			for(int i=n-1;i>0;--i){
				if(!a[i])continue;
				for(int j=i-1;j>=0;--j)
					for(int k=j;k>=0;--k)
						if(!(ans^sg[i]^sg[j]^sg[k])){
							cnt++;
							if(aa==99)aa=i,bb=j,cc=k;
						}
			}
			cout<<n-aa-1<<" "<<n-bb-1<<" "<<n-cc-1<<"\n"<<cnt<<"\n";
		}
	}
	exit(0);
	return 0;
}
2025/2/6 10:00
加载中...