QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#744352#9528. New Energy VehicleAndyWA 1ms8676kbC++141.4kb2024-11-13 21:37:522024-11-13 21:37:53

Judging History

This is the latest submission verdict.

  • [2024-11-13 21:37:53]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 8676kb
  • [2024-11-13 21:37:52]
  • Submitted

answer

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
void solve();
int main(){
    ios::sync_with_stdio(false);
	int T=1;
    cin>>T;
    while(T--){
        solve();
    }
	return 0;
}
#define int long long
const int N=1e5+5,M=1e5+5;
int n,m,a[N],b[N];
int x[M],t[M];
set<int> s;//依次考虑使用set中对应充电桩充电的电池
vector<int> vec[N];//给电池i充电的充电桩集合
void solve(){
    cin>>n>>m;
    ll E=0;
    s.clear();
    for(int i=1;i<=n;i++) vec[i].clear();
    for(int i=1;i<=n;i++){
        cin>>a[i];
        b[i]=a[i];
        E+=a[i];
    }
    for(int i=1;i<=m;i++){
        cin>>x[i]>>t[i];
        vec[t[i]].push_back(i);
        s.insert(i);
    } 
    x[0]=0;
    for(int i=1;i<=m;i++){
        ll d=x[i]-x[i-1],now=0;
        while(!s.empty() && now<d){//考虑i-1=>i充电桩的路上用哪些电池
            int id=*s.begin(),c=t[id];
            if(b[c]){
                ll v=min(b[c],d-now);
                now+=v,b[c]-=v;
                
            }
            if(!b[c]) s.erase(s.begin());
        }
        E+=a[t[i]]-b[t[i]];
        // cout<<"E: "<<E<<endl;
        b[t[i]]=a[t[i]];//充满电
        for(int id : vec[t[i]]){
            if(id>i){
                s.insert(id);
                break;
            } 
        } 
        while(!s.empty() && *s.begin()<=i) s.erase(s.begin());
    }
    cout<<E<<endl;
    return ;
}

详细

Test #1:

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

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

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'