QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#714963#9528. New Energy VehiclegoodnightdWA 0ms3600kbC++141.6kb2024-11-06 09:33:232024-11-06 09:33:24

Judging History

This is the latest submission verdict.

  • [2024-11-06 09:33:24]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3600kb
  • [2024-11-06 09:33:23]
  • Submitted

answer

#include<bits/stdc++.h>

using namespace std;

#define ll long long
#define N 200010
#define MAX 1010
const ll INF = 1e18 + 10;
const ll MOD = 1000000007;
ll a[N], b[N];
queue<ll>qu1;
vector<array<ll, 2>>num;
void solve() {
	ll n, m, pos = 0, sum1 = 0;
	while(qu1.size()) {
		qu1.pop();
	}
	num.clear();
	cin >> n >> m;
	for(int i = 1; i <= n; i++) {
		cin >> a[i];
		b[i] = a[i];
		sum1 += a[i];
	}
	num.push_back({0, 0});
	for(int i = 1; i <= m; i++) {
		ll step, idx;
		cin >> step >> idx;
		num.push_back({step, idx});
		qu1.push(idx);
	}
	for(int i = 1; i <= m; i++) {
		
		ll x = num[i][0] - num[i - 1][0], idx = num[i][1];
		if(a[idx] >= x) {
			pos = num[i][0];
		}
		else {
			while(qu1.size()) {
				ll p = qu1.front();
				qu1.pop();
				if(a[p] >= x) {
					a[p] -= x;
					sum1 -= x;
					x = 0;
				}
				else {
					x -= a[p];
					sum1 -= a[p];
					a[p] = 0;
				}
		//		cout << 'x' << p << ' ' << sum1 << '\n';
			}
			if(x == 0 || sum1 >= x) {
				a[idx] = b[idx];
				sum1 += a[idx];
				sum1 -= x;
				pos = num[i][0];
			}
			else {
				pos += sum1;
				sum1 = 0;
				break;
			}
		}
	//	cout << pos << ' ' << sum1 << '\n';
	}
	if(sum1 == 0) {
		cout << pos << '\n';
	}
	else {
		cout << pos + sum1 << '\n';
	}
}
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
//	freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
	int t = 1;
	cin >> t;
	while(t--) {
		solve();
	}
	return 0;
}
/*
3
3 3
8 2 7
3 2
18 1
20 2
3 2
8 2 7
3 1
18 1
5 4
1 2 3 4 5
6 1
9 5
12 3
14 2
*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 0ms
memory: 3528kb

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
0
11
0
2000000000

result:

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