QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#690342 | #9528. New Energy Vehicle | wzdxhxx | WA | 0ms | 3528kb | C++14 | 1.3kb | 2024-10-30 21:42:22 | 2024-10-30 21:42:23 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define PII pair<int,int>
#define int long long
void solve() {
int n,m;
cin >> n >> m;
vector<int> a(n + 1) , x(m + 1) , t(m + 1);
for(int i = 1 ; i <= n ; i ++) cin >> a[i];
auto b = a;
priority_queue<PII,vector<PII>,greater<PII>> q;
for(int i = 1 ;i <= m ; i ++) cin >> x[i] >> t[i];
vector<int> nxt(m + 1),mp(n + 1,m + 1);
for(int i = m ; i >= 1 ; i --) { //逆序get电池i的下一个充电站
nxt[i] = mp[t[i]];
mp[t[i]] = i;
}
for(int i = 1 ; i <= n ; i ++) q.emplace(mp[i],i);
int ans = 0 , k = 1;
while(!q.empty())
{
auto [pos,id] = q.top();
q.pop();
int dis;
if(k <= m && a[id] >= (dis = x[k] - ans)) {
a[id] -= dis;
ans += dis;
a[t[k]] = b[t[k]];
q.emplace(nxt[k],t[k]);
// if(id != t[k]) q.emplace(pos,id);
++ k;
} else {
ans += a[id];
a[id] = 0;
}
}
cout << ans << "\n";
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3528kb
input:
2 3 1 3 3 3 8 1 2 2 5 2 1 2 2 1
output:
11 9
result:
wrong answer 1st lines differ - expected: '12', found: '11'