結果

問題 No.715 集合と二人ゲーム
ユーザー kotatsugame
提出日時 2020-04-22 18:57:08
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 181 ms / 2,000 ms
コード長 611 bytes
コンパイル時間 703 ms
コンパイル使用メモリ 72,504 KB
実行使用メモリ 8,064 KB
最終ジャッジ日時 2024-10-11 23:02:51
合計ジャッジ時間 5,416 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 60
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp:9:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    9 | main()
      | ^~~~

ソースコード

diff #

#include<iostream>
#include<set>
#include<algorithm>
using namespace std;
int N;
int A[5<<17];
int gru[5<<17];
int ex[5<<17];
main()
{
	cin>>N;
	for(int i=0;i<N;i++)cin>>A[i];
	sort(A,A+N);
	gru[1]=gru[2]=1;
	for(int i=3;i<5<<17;i++)
	{
		if(i>=200)
		{
			gru[i]=gru[i-34];
			continue;
		}
		for(int j=3;j-3<=i-j;j++)
		{
			ex[gru[j-3]^gru[i-j]]=i;
		}
		ex[gru[i-2]]=i;
		int id=0;
		while(ex[id]==i)id++;
		gru[i]=id;
	}
	int ans=0;
	int c=1,pre=A[0];
	for(int i=1;i<N;i++)
	{
		if(pre+1<A[i])
		{
			ans^=gru[c];
			c=1;
		}
		else c++;
		pre=A[i];
	}
	ans^=gru[c];
	cout<<(ans?"First":"Second")<<endl;
}
0