QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#700990 | #9528. New Energy Vehicle | fosov# | WA | 0ms | 3584kb | C++14 | 1.1kb | 2024-11-02 13:37:55 | 2024-11-02 13:37:56 |
Judging History
answer
#include "bits/stdc++.h"
using namespace std;
#define ll long long
#define INF 0x3f3f3f3f
#define LNF 0x3f3f3f3f3f3f3f3fll
#define MOD 998244353
#define pii pair<int, int>
#define N 100010
ll a[N], prsv[N], pre[N];
int main() {
#ifdef TEST
freopen("zz.in", "r+", stdin);
#endif
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t; cin >> t;
while (t --) {
int n, m; cin >> n >> m;
ll cap = 0;
for (int i = 1; i <= n; ++ i) cin >> a[i], cap += a[i];
vector<pii> sta(m);
for (int i = 0; i < m; ++ i) cin >> sta[i].first >> sta[i].second;
sort(sta.begin(), sta.end());
ll x = 0;
int i = 1;
for (auto& [sx, bt] : sta) {
ll d = sx - x;
if (cap < d) break;
x = sx;
cap -= d;
prsv[i] = prsv[i-1] + d;
ll recharge = min(1ll * a[bt], prsv[i] - prsv[pre[bt]]);
cap += recharge;
prsv[i] -= recharge;
pre[bt] = i;
++ i;
}
cout << x + cap << '\n';
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3584kb
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: 3584kb
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 4 4 9 999999999 1000000000
result:
wrong answer 2nd lines differ - expected: '11', found: '4'