QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#345172#4797. XormitesKevin5307WA 0ms3604kbC++201.6kb2024-03-06 12:19:532024-03-06 12:19:54

Judging History

你现在查看的是最新测评结果

  • [2024-03-06 12:19:54]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3604kb
  • [2024-03-06 12:19:53]
  • 提交

answer

//Author: Kevin
#include<bits/stdc++.h>
//#pragma GCC optimize("O2")
using namespace std;
#define pb emplace_back
#define mp make_pair
#define ALL(x) (x).begin(),(x).end()
#define rALL(x) (x).rbegin(),(x).rend()
#define srt(x) sort(ALL(x))
#define rev(x) reverse(ALL(x))
#define rsrt(x) sort(rALL(x))
#define sz(x) (int)(x.size())
#define inf 0x3f3f3f3f
#define lb(v,x) (int)(lower_bound(ALL(v),x)-v.begin())
#define ub(v,x) (int)(upper_bound(ALL(v),x)-v.begin())
#define uni(v) v.resize(unique(ALL(v))-v.begin())
using ll=long long;
using ull=unsigned long long;
using pii=pair<int,int>;
using i128=__int128;
void die(string S){puts(S.c_str());exit(0);}
int A[50005];
bool check(vector<int> vec)
{
	int p1=0,p2=sz(vec)-1;
	while(p1<p2&&vec[p1]==vec[p2])
	{
		p1++;
		p2--;
	}
	if(p1>=p2) return true;
	int cur=0;
	int lst=-1;
	for(int i=p1;i<=p2;i++)
	{
		int x=vec[i];
		if(x==lst) cur^=1;
		else
		{
			if(cur) return false;
			cur=1;
			lst=x;
		}
	}
	if(cur) return false;
	return true;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		for(int i=1;i<=n;i++)
			cin>>A[i];
		int xo=0;
		for(int i=1;i<=n;i++)
			xo^=A[i];
		if(!xo)
			puts("Draw");
		else if(n%2==0)
			puts("First");
		else
		{
			int x=__lg(xo);
			for(int i=1;i<=n;i++)
				A[i]=A[i]>>x&1;
			vector<int> v1,v2;
			for(int i=1;i<n;i++)
				v1.pb(A[i]);
			for(int i=2;i<=n;i++)
				v2.pb(A[i]);
			bool flag=0;
			if(A[1]) flag|=check(v2);
			if(A[n]) flag|=check(v1);
			if(flag)
				puts("First");
			else
				puts("Second");
		}
	}
	return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3604kb

input:

3
2
3 3
2
3 5
3
4 4 4

output:

Draw
First
First

result:

wrong answer 3rd lines differ - expected: 'Second', found: 'First'