QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#696774#9528. New Energy VehicleluoyandanfeiWA 0ms3600kbC++202.4kb2024-11-01 01:17:282024-11-01 01:17:34

Judging History

This is the latest submission verdict.

  • [2024-11-01 01:17:34]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3600kb
  • [2024-11-01 01:17:28]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
int T,n,m;
int main()
{
    cin>>T;
    while(T--){
        cin>>n>>m;
        unordered_map<int,int>a;
        unordered_map<int,int>b;
        vector<int>t(m);
        vector<int>x(m);
        for(int i=0;i<n;i++){
            int A;
            cin>>A;
            a[i+1]=A;
            b[i+1]=A;
        }
        for(int i=0;i<m;i++){
            int x1,t1;
            cin>>x1>>t1;
            t[i]=t1;
            x[i]=x1;
        }
        for(int i=1;i<m;i++){
            x[i]=x[i]-x[i-1];
        }
        unordered_map<int,bool>c;
        for(int i=0;i<m;i++){
            c[t[i]]=true;
        }
        for(int i=1;i<=n;i++){
            if(!c[i])t.push_back(i);
        }
        int k=t.size();
        for(int i=0;i<k;i++){
            t.push_back(t[i]);
        }
        
        // for(int i=1;i<=n;i++){
        //     cout<<a[i]<<" ";
        // }
        // cout<<endl;
        // for(int i=0;i<m;i++){
        //     cout<<x[i]<<" "<<t[i]<<endl;
        // }
        // for(int i=0;i<t.size();i++){
        //     cout<<t[i]<<" ";
        // }
        // cout<<endl;
        // cout<<endl;
        
        
        int idx=0;
        int cnt=0;
        int ans=0;
        for(int i=0;i<m;i++){
            int count=0;
            while(x[i]){
                if(x[i]>=a[t[cnt]]){
                    x[i]-=a[t[cnt]];
                    count+=a[t[cnt]];
                    a[t[cnt]]=0;
                    cnt++;
                }
                else{
                    count+=x[i];
                    
                    a[t[cnt]]-=x[i];
                    x[i]=0;
                    
                }
                if(cnt==t.size()){
                    break;
                }
            }
            if(x[i])break;
            ans+=count;
            // for(int i=1;i<=n;i++){
            //     cout<<a[i]<<" ";
            // }
            // cout<<endl;
            // cout<<ans<<endl;
            a[t[i]]=b[t[i]];
            // for(int i=1;i<=n;i++){
            //     cout<<a[i]<<" ";
            // }
            // cout<<endl;
            // cout<<endl;
            cnt=i+1;
            
        }
        for(int i=1;i<=n;i++){
            ans+=a[i];
            // cout<<a[i]<<" ";
        }
        // cout<<endl;
        cout<<ans<<endl;
        // cout<<endl;
    }
    return 0;
}

詳細信息

Test #1:

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

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

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
0
11
0
2000000000

result:

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