QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#714963 | #9528. New Energy Vehicle | goodnightd | WA | 0ms | 3600kb | C++14 | 1.6kb | 2024-11-06 09:33:23 | 2024-11-06 09:33:24 |
Judging History
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'