QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#702531 | #9528. New Energy Vehicle | yzhx# | RE | 0ms | 0kb | C++20 | 1021b | 2024-11-02 16:09:37 | 2024-11-02 16:09:40 |
Judging History
answer
#include <stdlib.h>
#include <iostream>
#include <vector>
using namespace std;
using ll = long long;
void slove() {
int n, m;
cin >> n >> m;
ll tot = 0;
vector<int> cap(n + 1);
vector<int> pre(n + 1);
for (int i = 1 ; i <= n ; i++) {
cin >> cap[i];
tot += cap[i];
}
ll fre = 0;
ll pos = 0;
vector<int> tar(m + 1) , type(m + 1);
for (int i = 1 ; i <= m ; i++){
cin >> tar[i] >> type[i];
}
for (int i =1 ; i <= m ; i++){
if (tot + fre >= tar[i]){
fre += min(cap[type[i]] , tar[i] - pre[type[i]]);
fre = min(fre , (ll)tar[i]);
pre[type[i]] = tar[i];
}else break;
}
ll ans = tot + fre;
// cout << fre << "\n";
cout << ans << "\n";
}
int main() {
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
int cnt = 1;
cin >> cnt;
while (cnt--) {
slove();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Dangerous Syscalls
input:
2 3 1 3 3 3 8 1 2 2 5 2 1 2 2 1