105902024-04-06 10:37:50UVinceMágikus sorozatcpp17Elfogadva 100/10082ms41216 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;

#define all(a) a.begin(),a.end()

int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    //freopen("be2.txt","r",stdin);
    int n;
    cin >> n;
    
    vector<ll> z(n),a(n);
    stack<pair<ll,ll>> last;
    vector<vector<pair<ll,ll>>> mark(n);
    for (ll i = 0; i < n; i++)
    {
        
        cin>>z[i];
        if (z[i]!=0) {
            a[i]=1;
            while (!last.empty() && last.top().first+last.top().second-1<=i) last.pop();
            last.push({i,z[i]});
            if (i+z[i]<n) mark[i+z[i]].push_back({i,z[i]});
        }
        else {
            a[i]=2;
            auto [f,l]=last.top();
            if (f+l-1>=i){
                a[i]=a[i-f];
            }
            else {
                auto [p,q]=last.top();
                last.pop();
                if (!mark[i].empty()){
                    vector<bool> allowed(1e4,true);
                    for (auto [x,y] : mark[i]){
                        allowed[a[y]]=false;
                    }
                    for (int z=2;z<1e4;z++){
                        if (allowed[z]){
                            a[i]=z;
                            break;
                        }
                    }
                }
            }
        }
    }
    for (ll i : a) cout<<i<<" ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1696 KiB
2Elfogadva4ms2712 KiB
subtask215/15
3Elfogadva3ms2508 KiB
4Elfogadva3ms2760 KiB
5Elfogadva3ms2692 KiB
subtask315/15
6Elfogadva3ms2600 KiB
7Elfogadva2ms2540 KiB
8Elfogadva3ms2760 KiB
9Elfogadva2ms2812 KiB
10Elfogadva3ms2936 KiB
subtask430/30
11Elfogadva3ms3284 KiB
12Elfogadva3ms3288 KiB
13Elfogadva3ms3348 KiB
14Elfogadva3ms3264 KiB
subtask540/40
15Elfogadva59ms27080 KiB
16Elfogadva70ms30064 KiB
17Elfogadva79ms40152 KiB
18Elfogadva79ms41216 KiB
19Elfogadva82ms40572 KiB
20Elfogadva75ms40348 KiB
21Elfogadva72ms38116 KiB
22Elfogadva71ms38684 KiB
23Elfogadva76ms38212 KiB
24Elfogadva75ms34156 KiB
25Elfogadva72ms39876 KiB
26Elfogadva75ms39824 KiB
27Elfogadva71ms31412 KiB
28Elfogadva68ms30716 KiB
29Elfogadva64ms29220 KiB
30Elfogadva72ms37508 KiB
31Elfogadva68ms32812 KiB
32Elfogadva63ms29748 KiB