Submission #1364048

#TimeUsernameProblemLanguageResultExecution timeMemory
1364048val1262Inflation (EGOI23_inflation)C++20
100 / 100
85 ms14708 KiB
#include <iostream>
#include <unordered_map>
#include <string>
#define int long long
using namespace std;

signed main() {
    ios::sync_with_stdio(false), cin.tie(0);

    int nombrePrix;
    cin >> nombrePrix;

    unordered_map<int, int> occurrencesPrix;
    int sommeSansInflation = 0;
    int inflationCumulee = 0;
    for (int indexPrix = 0; indexPrix < nombrePrix; indexPrix++) {
        int valeurPrix;
        cin >> valeurPrix;
        occurrencesPrix[valeurPrix]++;
        sommeSansInflation += valeurPrix;
    }

    int nombreJours;
    cin >> nombreJours;
    for (int jour = 0; jour < nombreJours; jour++) {
        string operation;
        cin >> operation;

        if (operation == "SET") {
            int ancienPrix, nouveauPrix;
            cin >> ancienPrix >> nouveauPrix;
            ancienPrix -= inflationCumulee;
            nouveauPrix -= inflationCumulee;
            int quantite = occurrencesPrix[ancienPrix];
            occurrencesPrix[ancienPrix] -= quantite;
            sommeSansInflation -= quantite * ancienPrix;
            occurrencesPrix[nouveauPrix] += quantite;
            sommeSansInflation += quantite * nouveauPrix;
        } 
        else {
            int augmentation;
            cin >> augmentation;
            inflationCumulee += augmentation;
        }

        cout << sommeSansInflation + inflationCumulee * nombrePrix << '\n';
    }
    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...