QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#177404#6191. Hard ProblemPhantomThreshold#WA 0ms3800kbC++20852b2023-09-12 22:23:192023-09-12 22:23:20

Judging History

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

  • [2023-09-12 22:23:20]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3800kb
  • [2023-09-12 22:23:19]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int T;
	cin>>T;
	while(T--)
	{
		int n;
		cin>>n;
		vector<int> a(n+5);
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
		}
		long long ans=0;
		int f1=0,f2[2]={0,0};
		for(int i=1;i<=n;i++)
		{
//			cerr<<"pos "<<i<<' '<<a[i]<<' '<<f1<<' '<<f2[i%2]<<' '<<f2[(i+1)%2]<<endl;
			int d2=max(max(a[i]-f1,0)-max(a[i+1]-f1-f2[(i+1)%2],0),min(max(a[i]-f1,0),f2[i%2]));
			int d1=max(min(max(a[i]-f2[i%2],0),max(a[i+1]-f2[(i+1)%2],0)),min(a[i],f1));
			if(d2<=f2[i%2])f2[i%2]=d2;
			else
			{
//				cerr<<"type 2 add "<<d2-f2[i%2]<<endl;
				ans+=d2-f2[i%2],f2[i%2]=d2;
			}
			if(d1<=f1)f1=d1;
			else
			{
//				cerr<<"type 1 add "<<d1-f1<<endl;
				ans+=d1-f1,f1=d1;
			}
		}
		cout<<ans<<endl;
	}
	
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
5
2 1 2 1 2
8
1000000000 1000000000 0 1000000000 1000000000 0 1000000000 1000000000
13
1 1 4 5 1 4 1 9 1 9 8 1 0

output:

2
3000000000
19

result:

ok 3 number(s): "2 3000000000 19"

Test #2:

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

input:

5
50
3 4 10 2 9 1 2 1 3 8 8 4 0 7 5 4 4 3 9 7 4 1 3 5 2 1 5 10 1 5 9 2 2 4 9 10 10 0 1 0 6 2 1 4 4 1 0 10 9 8
50
447 695 336 2 590 444 493 390 62 255 475 342 518 539 780 636 811 813 231 990 804 778 742 627 555 625 211 843 200 638 340 172 99 866 189 125 51 406 294 409 158 126 489 402 256 433 121 546 ...

output:

78
5567
601370
82513477
7608823572

result:

wrong answer 1st numbers differ - expected: '77', found: '78'