QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#686832#9528. New Energy VehiclexianyuRE 1ms7708kbC++141.4kb2024-10-29 15:56:452024-10-29 15:56:46

Judging History

This is the latest submission verdict.

  • [2024-10-29 15:56:46]
  • Judged
  • Verdict: RE
  • Time: 1ms
  • Memory: 7708kb
  • [2024-10-29 15:56:45]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N=1e6+10,mod=998244353;
typedef pair<int,int>PII;
typedef pair<double,double>PDD;
int n,m,k;
int a[N];
PII b[N];
int s[N];
int pre[N];
void solve() {
    cin>>n>>m;
    int sum=0;
    for(int i=1;i<=n;i++) {
        cin>>a[i];
        pre[i]=0;
        sum+=a[i];
    }
    for(int i=1;i<=m;i++) {
        cin>>b[i].first>>b[i].second;
    }
    if(b[1].first>sum) {
        cout<<sum<<endl;
        return;
    }
    int pos=0;
    map<int,int>mp;
    int qk=0;
    int ans=0;
    bool f=true;
    for(int i=1;i<=m;i++) {
        int len=b[i].first-b[i-1].first;
        if(len>=a[b[i].second]) {
            pre[a[b[i].second]]=-1;
            if(qk+len>sum) {
                ans=b[i].first+sum-qk;
                f=false;
                break;
            }
            qk+=len-a[b[i].second];
//cout<<qk<<endl;
        }
        else {
            if(pre[a[b[i].second]]==-1){}
            else qk-=a[b[i].second]-len;
            pre[a[b[i].second]]=0;
            qk=max(0LL,qk);
  //          cout<<qk<<endl;
        }
    }
    //cout<<qk<<endl;
    if(f)ans=b[m].first+sum-qk;
    cout<<ans<<endl;
}
signed main() {
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int T=1;
    cin>>T;
    while(T--) {
        solve();
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 7708kb

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
Runtime Error

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:


result: