QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#698691#9528. New Energy VehicleSredWA 1ms9992kbC++141.6kb2024-11-01 21:23:402024-11-01 21:23:40

Judging History

This is the latest submission verdict.

  • [2024-11-01 21:23:40]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 9992kb
  • [2024-11-01 21:23:40]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define lowbit(x) (x) & (-x)
const ll MAXN = 4e5 + 5;
ll Tex, n, m, a[MAXN], x[MAXN], t[MAXN], tr[MAXN];
void add(ll idx, ll k){
	if(!idx)  return;
    while(idx <= m){
        tr[idx] += k;
        idx += lowbit(idx);
    }
}
ll sum(ll idx){
    ll ret = 0;
    while(idx > 0){
        ret += tr[idx];
        idx -= lowbit(idx);
    }
    return ret;
}
void AC(){
    cin >> n >> m;
    ll dq = 0;
    map<ll, ll> mp;
    for(int i = 1; i <= n; i ++){
        cin >> a[i];
        dq += a[i];
    }
    for(int i = 1; i <= m; i ++){
        cin >> x[i] >> t[i];
    }
    for(int i = 1; i <= m; i ++){
        add(i, x[i] - x[i - 1]);
        ll tmp = min(sum(i) - sum(mp[t[i]]-1), a[t[i]]);
        
        dq -= x[i] - x[i - 1];
        if(dq < 0){
            cout << dq + x[i] << "\n";
            goto lp;
        }
         dq += tmp;
        if( i != 1){
            ll k = sum(i-1);
            if(k >= tmp){
            	
            	   add(i-1,-tmp);
            	   tmp = 0;
            }	 
            else{
            	
              add(i-1,-k);
              tmp -= k;
             
             }
        }
        add(i, -tmp);
        mp[t[i]] = i;
    }
    cout << x[m] + dq << "\n";
    lp:
    for(int i = 1; i <= m; i ++){
        add(i, -sum(i));
    }
}
int main(){
    // freopen("in.in", "r", stdin);
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    cin >> Tex;
    while(Tex --) AC();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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

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'