QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#686729#9528. New Energy VehiclexianyuWA 1ms7584kbC++141.2kb2024-10-29 15:24:252024-10-29 15:24:26

Judging History

This is the latest submission verdict.

  • [2024-10-29 15:24:26]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 7584kb
  • [2024-10-29 15:24:25]
  • 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];
void solve() {
    cin>>n>>m;
    int sum=0;
    for(int i=1;i<=n;i++) {
        cin>>a[i];
        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]) {
            if(qk+len>sum) {
                ans=b[i].first+sum-qk;
                f=false;
                break;
            }
            qk+=len-a[b[i].second];
        }
        else {
            qk-=a[b[i].second]-len;
            qk=max(0LL,qk);
        }
    }
    //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;
}

详细

Test #1:

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

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: 1ms
memory: 7580kb

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:

10
11
4
11
999999999
2000000000

result:

wrong answer 1st lines differ - expected: '9', found: '10'