Submission #1345972

#TimeUsernameProblemLanguageResultExecution timeMemory
1345972settopInflation (EGOI23_inflation)C++20
100 / 100
250 ms24584 KiB
#include<bits/stdc++.h>

using namespace std;

#define int long long
#define fall(i,a,b) for(int i=a;i<=b;i++)
#define rfall(i,a,b) for(int i=a;i>=b;i--)
#define pb push_back
const int MAXN=3e5+10;

map<int,int> freq;
int v[MAXN],n,ans;

int32_t main(){
    std::ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    cin>>n;

    fall(i,1,n){
        cin>>v[i];
        ans+=v[i];
        freq[v[i]]++;
    }
    
    int op=0;

    int q; cin>>q;

    while(q--){
        string s; cin>>s;
        if(s=="INFLATION"){
            int val; cin>>val; ans+=n*val;
            op+=val; 
        }
        else{
            int x,val; cin>>x>>val;
            if(x!=val){
                ans-=freq[x-op]*x; 
                ans+=freq[x-op]*(val);
                freq[val-op]+=freq[x-op];
                freq[x-op]=0;
            }
        }
        cout<<ans<<"\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...