QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#229807#7636. Fair Electionsucup-team191#WA 0ms3740kbC++141.8kb2023-10-28 16:57:002023-10-28 16:57:02

Judging History

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

  • [2023-10-28 16:57:02]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3740kb
  • [2023-10-28 16:57:00]
  • 提交

answer

#include <bits/stdc++.h>
#define x first
#define y second
using namespace std;
using pii=pair<int,int>;
using vi=vector<int>;
using ll=long long;
using vl=vector<ll>;
#define pb push_back
#define all(a) begin(a),end(a)

const int N=10010,MOD=1e9+7;
const char en='\n';
const ll LLINF=1ll<<60;

int n,a[N],b[N],c[N],x[2][N],y[2][N];

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin>>n;
	for (int i=0;i<n;++i)
	{
		cin>>a[i]>>b[i]>>c[i];
	}
	for (int c1=0;c1<=n;++c1)
	{
		int pn3=-1,pn1=-1;
		for (int c2=0;c1+c2<=n;++c2)
		{
			int wi,c3=n-c1-c2;
			if (c1>=c2 && c1>=c3) wi=1;
			else if (c2>c1 && c2>=c3) wi=2;
			else wi=3;
			if (wi!=3 && pn3==-1)
			{
				pn3=c2;
			}
			if (wi!=1 && pn3!=-1 && pn1==-1)
			{
				pn1=c2;
			}
		}
		if (pn1==-1) pn1=n-c1+1;
		x[n%2][c1]=pn3;
		y[n%2][c1]=pn1;
	}
	for (int i=n-1;i>=0;--i)
	{
		int cu=i%2,ne=(i+1)%2;
		for (int c1=0;c1<=i;++c1)
		{
			vi v={x[ne][c1+1],y[ne][c1+1],x[ne][c1],y[ne][c1]-1};
			sort(all(v));
			int pn3=-1,pn1=-1;
			for (auto c2: v)
			{
				int wi=-1;
				if (a[i]==1)
				{
					if (c2>=x[ne][c1+1] && c2<y[ne][c1+1]) wi=1;
				}
				if (a[i]==2)
				{
					if (c2+1>=y[ne][c1]) wi=2;
				}
				if (a[i]==3)
				{
					if (c2<x[ne][c1]) wi=3;
				}
				if (wi==-1)
				{
					if (b[i]==1)
					{
						if (c2>=x[ne][c1+1] && c2<y[ne][c1+1]) wi=1;
					}
					if (b[i]==2)
					{
						if (c2+1>=y[ne][c1]) wi=2;
					}
					if (b[i]==3)
					{
						if (c2<x[ne][c1]) wi=3;
					}
				}
				if (wi==-1) wi=c[i];
				if (wi!=3 && pn3==-1) pn3=c2;
				if (wi!=1 && pn3!=-1 && pn1==-1) pn1=c2;
			}
			if (pn1==-1) pn1=i+1-c1;
			if (pn3==-1) pn3=i+1-c1;
			x[cu][c1]=pn3;
			y[cu][c1]=pn1;
		}
	}
	if (x[0][0]>0) cout<<3<<en;
	else if (y[0][0]>0) cout<<1<<en;
	else cout<<2<<en;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3584kb

input:

3
3 2 1
1 2 3
2 1 3

output:

2

result:

ok 1 number(s): "2"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3588kb

input:

5
1 2 3
2 3 1
1 3 2
3 1 2
2 1 3

output:

1

result:

ok 1 number(s): "1"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3608kb

input:

5
1 2 3
3 2 1
1 2 3
1 2 3
3 2 1

output:

1

result:

ok 1 number(s): "1"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

5
3 2 1
3 1 2
2 3 1
1 2 3
2 1 3

output:

2

result:

ok 1 number(s): "2"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3740kb

input:

5
3 2 1
3 2 1
1 3 2
1 3 2
3 2 1

output:

3

result:

ok 1 number(s): "3"

Test #6:

score: 0
Accepted
time: 0ms
memory: 3736kb

input:

5
3 2 1
3 1 2
1 2 3
1 3 2
1 3 2

output:

1

result:

ok 1 number(s): "1"

Test #7:

score: 0
Accepted
time: 0ms
memory: 3660kb

input:

20
1 2 3
2 3 1
1 3 2
3 1 2
2 1 3
1 2 3
3 2 1
1 2 3
1 2 3
3 2 1
3 2 1
3 1 2
2 3 1
1 2 3
2 1 3
3 2 1
3 2 1
1 3 2
1 3 2
3 2 1

output:

1

result:

ok 1 number(s): "1"

Test #8:

score: 0
Accepted
time: 0ms
memory: 3608kb

input:

20
3 2 1
3 1 2
1 2 3
1 3 2
1 3 2
1 2 3
3 1 2
1 3 2
3 2 1
1 3 2
2 1 3
3 1 2
2 3 1
2 1 3
2 3 1
3 1 2
3 1 2
2 1 3
3 1 2
1 2 3

output:

1

result:

ok 1 number(s): "1"

Test #9:

score: -100
Wrong Answer
time: 0ms
memory: 3664kb

input:

20
1 2 3
2 3 1
2 1 3
2 1 3
1 3 2
3 1 2
2 3 1
1 3 2
3 1 2
1 2 3
1 2 3
3 2 1
3 1 2
1 2 3
3 2 1
1 2 3
2 3 1
3 1 2
3 2 1
3 2 1

output:

2

result:

wrong answer 1st numbers differ - expected: '3', found: '2'