제출 #1187945

#제출 시각아이디문제언어결과실행 시간메모리
1187945yhx3Stone Arranging 2 (JOI23_ho_t1)C++20
컴파일 에러
0 ms0 KiB
#include <iostream>
#include <bits/stdc++.h>
#include <iomanip>
#include <numeric>
 
using namespace std;
 
#define ll long long
 
bool comp(const pair<ll,ll> &a,pair<ll,ll> &vl)
{
    return a.second > vl.first;
}
 
bool scomp(const pair<ll,ll> &a,pair<ll,ll> &vl)
{
    return a.first >= vl.first;
}
 

void solve() {
    ll n;
    cin >> n;
    vector<ll> a(n);
    ll mx = 0;
    for (ll i = 0; i < n; i++)
    {
        cin >> a[i];
        mx = max(mx,a[i]);
    }
    
    vector<ll> ans(n);
    if (mx <= 2) {
        if (a[0] == 1) {
            bool ok = false;
            for (ll i = n - 1; i >= 0; i--)
            {
                if (ok) {
                    ans[i] = 1;
                    continue;
                }
                if (a[i] == 1){
                    ans[i] = 1;
                    ok = true;
                } else {
                    ans[i] = 2;
                }
            }
        } else {
            bool ok = false;
            for (ll i = n - 1; i >= 0; i--)
            {
                if (ok) {
                    ans[i] = 2;
                    continue;
                }
                if (a[i] == 2){
                    ans[i] = 2;
                    ok = true;
                } else {
                    ans[i] = 1;
                }
            }
        }
    } else {
        map<ll,ll> mp;
        for (ll i = 0; i < n; i++)
        {
            if (mp.find(a[i]) != mp.end()) {
                for (ll j = i - 1; j > mp[a[i]]; j--)
                {
                    mp.erase(a[j]);
                    ans[j] = a[i];
                }
                for (ll j = 0; j < mp[a[i]]; j++)
                {
                    mp[a[j]] = j;  
                }
            } 
            mp[a[i]] = i;
            ans[i] = a[i];
        }
        
    }
    for (ll i = 0; i < n; i++)
    {
        cout << ans[i] << endl;
    }
    
}

ll main() {
    ll t = 1;
    // cin>>t;

    while(t--) {
        solve();
    }
    return 0;

}

컴파일 시 표준 에러 (stderr) 메시지

cc1plus: error: '::main' must return 'int'