QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#689497#9528. New Energy VehicleSwd146296#WA 1ms5724kbC++171.2kb2024-10-30 17:25:062024-10-30 17:25:07

Judging History

This is the latest submission verdict.

  • [2024-10-30 17:25:07]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 5724kb
  • [2024-10-30 17:25:06]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int _, n, m;
ll a[100007],now[100007];
ll x[100007],t[100007];

int main()
{
	cin >> _;
	while(_--)
	{
		cin >> n >> m;
		for(int i = 1; i <= n; i++)
			cin >> a[i], now[i] = a[i];
		for(int i = 1; i <= m; i++)
			cin >> x[i] >> t[i];
		ll cnt = 0, ans = 0;
		for(int i = 1; i <= m; i++)
		{
			int nowbat = i;
			int next;
			while(ans <= x[i])
			{
				if(nowbat <= m)
				{
					next = t[nowbat];
					if(now[next] + ans >= x[i])
					{
						now[next] -= x[i] - ans;
						ans = x[i];
						break;
					}
					else {
						ans += now[next];
						now[next] = 0;
						++nowbat;
						if(nowbat > m)
							next = 1;
					}
				}
				else
				{
					if(now[next] + ans >= x[i])
					{
						now[next] -= x[i] - ans;
						ans = x[i];
						break;
					}
					else {
						ans += now[next];
						now[next] = 0;
					}
					++next;
					if(next > n)
						break;
				}
			}
			now[t[i]] = a[t[i]];
		}
//		for(int i = 1; i <= n; i++)
//			cout << now[i] <<' ';
		if(ans >= x[m])
			for(int i = 1; i <= n; i++)
				ans += now[i];
		cout << ans << endl;
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

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

output:

12
9

result:

ok 2 lines

Test #2:

score: -100
Wrong Answer
time: 1ms
memory: 5724kb

input:

6
3 2
2 2 2
6 1
7 1
2 2
3 3
2 1
6 2
2 3
2 2
5 1
7 2
9 1
2 2
3 3
2 1
6 2
1 1
999999999
1000000000 1
1 1
1000000000
1000000000 1

output:

9
11
8
11
999999999
2000000000

result:

wrong answer 3rd lines differ - expected: '4', found: '8'