제출 #1359512

#제출 시각아이디문제언어결과실행 시간메모리
1359512sztrdxstthgInflation (EGOI23_inflation)C++20
70 / 100
36 ms17624 KiB
#include <iostream>
#define int long long
using namespace std;

const int PRIX_MAX = 1000001;
int nbPrix, nbJours;
int occ[PRIX_MAX * 2];
int sSSInfl, sInfl;

void init() {
    cin >> nbPrix;
    for (int p = 0; p < PRIX_MAX * 2; p++) occ[p] = 0;
    for (int idP = 0; idP < nbPrix; idP++) {
        int prix;
        cin >> prix;
        occ[prix+PRIX_MAX]++;
        sSSInfl += prix;
    }
}

void jours() {
    cin >> nbJours;
    for (int idJ = 0; idJ < nbJours; idJ++) {
        string r;
        cin >> r;
        //cout << "\n\njour num : " << idJ << ' ';
        if (r == "SET") {
            int dep, arr;
            cin >> dep >> arr;
            dep -= sInfl, arr -= sInfl; 
            dep += PRIX_MAX, arr += PRIX_MAX;
            int nb = occ[dep];
            occ[dep] -= nb;
            sSSInfl -= nb * (dep - PRIX_MAX);
            occ[arr] += nb;
            sSSInfl += nb * (arr - PRIX_MAX);
        }
        else {
            int x;
            cin >> x;
            sInfl += x;
        }
        /*cout << "occ : ";
        for (int i = 0; i <= 30; i++) cout << occ[i] << ' ';
            cout << "\n\n";
        
        cout << sSSInfl << ' ' << sInfl << '\n';*/
        cout << sSSInfl + sInfl*nbPrix << '\n';
    }
}


signed main() {
    ios::sync_with_stdio(false), cin.tie(0);
    init();
    jours();
    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…