53942023-05-09 14:11:25mraronMexxcpp17Elfogadva 100/100116ms20168 KiB
#include<bits/stdc++.h>
using namespace std;
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    vector<int> a(n);
    for(int i=0;i<n;++i) {
        cin>>a[i];
    }
    bool ok=true;
    for(int i=0;i<n;++i) {
        ok&=i==0||a[i-1]<=a[i];
        ok&=a[i]<=i+1;
    }
    
    cerr<<ok<<"\n";
    if(!ok) {
        cout<<"NEM\n";
        return 0;
    }

    a.insert(a.begin(), 0);
    int mx=*max_element(a.begin(), a.end());

    vector<int> had(2*n);
    vector<int> b(n+1,-1);
    for(int i=1;i<=n;++i) {
        if(a[i-1]!=a[i]) {
            b[i]=a[i-1];
            had[b[i]]=1;
        }
    }
    
    int curr=0;
    for(int i=1;i<=n;++i) {
        if(b[i]==-1) {
            while(had[curr] || curr==mx) curr++;
            b[i]=curr;
            had[curr]=1;
        }
    }

    for(int i=1;i<=n;) {
        int j=i;
        while(j<=n && a[i]==a[j]) j++;
        if(i+1<j) {
            reverse(b.begin()+i+1, b.begin()+j);
        }
        i=j;
    }

    cout<<"IGEN\n";
    for(int i=1;i<=n;++i) cout<<b[i]<<" ";
    cout<<"\n";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1700 KiB
2Elfogadva3ms1928 KiB
subtask28/8
3Elfogadva3ms2136 KiB
4Elfogadva3ms2348 KiB
5Elfogadva3ms2572 KiB
6Elfogadva3ms2784 KiB
7Elfogadva3ms2872 KiB
8Elfogadva3ms2864 KiB
9Elfogadva3ms2996 KiB
10Elfogadva2ms3076 KiB
11Elfogadva3ms3204 KiB
subtask316/16
12Elfogadva3ms3292 KiB
13Elfogadva3ms3296 KiB
14Elfogadva3ms3292 KiB
15Elfogadva3ms3416 KiB
16Elfogadva2ms3500 KiB
subtask432/32
17Elfogadva4ms4076 KiB
18Elfogadva4ms3956 KiB
19Elfogadva4ms4032 KiB
20Elfogadva4ms4384 KiB
21Elfogadva4ms4544 KiB
22Elfogadva4ms4664 KiB
23Elfogadva3ms4308 KiB
24Elfogadva3ms4196 KiB
subtask544/44
25Elfogadva108ms19884 KiB
26Elfogadva109ms19876 KiB
27Elfogadva112ms20128 KiB
28Elfogadva112ms20168 KiB
29Elfogadva109ms20056 KiB
30Elfogadva109ms20060 KiB
31Elfogadva111ms20012 KiB
32Elfogadva111ms20012 KiB
33Elfogadva112ms20012 KiB
34Elfogadva112ms20008 KiB
35Elfogadva116ms20008 KiB
36Elfogadva56ms8332 KiB
37Elfogadva56ms8180 KiB