제출 #1367996

#제출 시각아이디문제언어결과실행 시간메모리
1367996biserailievaInflation (EGOI23_inflation)C++20
42 / 100
336 ms25260 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin>>n;
    long long A[n];
    long long sum;
    for(int i=0;i<n;i++)
    {
        cin>>A[i];
    }
    int q;
    cin>>q;
    if(n==1 || (n<=100 && q<=100))
    {
        while(q--)
        {
            string s;
            cin>>s;
            if(s=="SET")
            {
                int x, y;
                cin>>x>>y;
                sum=0;
                for(int i=0;i<n;i++)
                {
                    if(A[i]==x)
                    {
                        A[i]=y;
                    }
                    sum+=A[i];
                }
            }
            else
            {
                int x;
                cin>>x;
                sum=0;
                for(int i=0;i<n;i++)
                {
                    A[i]+=x;
                    sum+=A[i];
                }
            }
            cout<<sum<<endl;
        }
    }
    else
    {
        bool inf=true;
        bool st=true;
        int x[q], y[q];
        for(int i=0;i<q;i++)
        {
            string s;
            cin>>s;
            if(s=="SET")
            {
                cin>>x[i]>>y[i];
                inf=false;
            }
            else
            {
                cin>>x[i];
                st=false;
            }
        }
        if(inf)
        {
            sum=0;
            for(int i=0;i<n;i++)
            {
                sum+=A[i];
            }
            for(int i=0;i<q;i++)
            {
                sum+=n*x[i];
                cout<<sum<<endl;
            }
        }
        else
        {
            sum=0;
            map<long long, long long>freq;
            for(int i=0;i<n;i++)
            {
                sum+=A[i];
                freq[A[i]]++;
            }
            for(int i=0;i<q;i++)
            {
                sum-=x[i]*freq[x[i]];
                sum+=y[i]*freq[y[i]];
                freq[y[i]]+=freq[x[i]];
                freq[x[i]]=0;
                cout<<sum<<endl;
            }
        }
    }
    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…