QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#690061#9528. New Energy Vehicleam_iWA 0ms3548kbC++171.5kb2024-10-30 20:04:472024-10-30 20:04:48

Judging History

This is the latest submission verdict.

  • [2024-10-30 20:04:48]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3548kb
  • [2024-10-30 20:04:47]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define int long long
typedef pair<int,int> rr;

void solve(){
    int n,m;
    cin>>n>>m;
    vector<int> a(n+1),v(n+1),as(n+1);
    int sum=0;
    for(int i=1;i<=n;i++)cin>>a[i],sum+=a[i],as[i]=a[i];
    vector<pair<int,int>> b(m+1);
    map<int,vector<int> > ma;
    priority_queue<rr,vector<rr>,greater<rr> >q;
    for(int i=1;i<=m;i++){
        cin>>b[i].x>>b[i].y;
        v[b[i].y]=1;
        ma[b[i].y].push_back(i);
        q.push({i,b[i].y});
    }
    for(int i=1;i<=n;i++){
        if(!v[i]){
            q.push({m+1,i});
        }
        ma[i].push_back(m+1);
    }
    int t=0,s=sum;
    for(int i=1;i<=m;i++){
        int ne=b[i].x-b[i-1].x;
        s-=ne;
        while(q.size()&&q.top().x<i)q.pop();
        while(q.size()&&ne){
            auto [w,j]=q.top();q.pop();
            if(a[j]<=ne){
                ne-=a[j];
                a[j]=0;
            }
            else {
                a[j]-=ne;
                ne=0;
                q.push({w,j});
            }
        }
        s+=as[b[i].y]-a[b[i].y];
        a[b[i].y]=as[b[i].y];
        auto f=upper_bound(ma[b[i].y].begin(),ma[b[i].y].end(),i)-ma[b[i].y].begin();
        q.push({ma[b[i].y][f],b[i].y});
        t=b[i].x;
    }
    t+=s;
    cout<<t<<"\n";

}
signed main(){
    cin.tie(0)->ios::sync_with_stdio(0);
    cout.tie(0);
    int t=1;
    cin>>t;
    while(t--)solve();
}

詳細信息

Test #1:

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

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: 3548kb

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
10
11
1999999998
2000000000

result:

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