105892024-04-06 10:10:51UVinceMágikus sorozatcpp17Hibás válasz 15/10068ms23712 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;
    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]});
        }
        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 (last.top().second==n){
                    if (a[i-p]==1) a[i]==2;
                    else a[i]=5-a[i-p];
                }
            }
        }
    }
    for (ll i : a) cout<<i<<" ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms2100 KiB
2Elfogadva4ms2684 KiB
subtask215/15
3Elfogadva3ms2628 KiB
4Elfogadva3ms2768 KiB
5Elfogadva3ms2972 KiB
subtask30/15
6Elfogadva3ms3000 KiB
7Elfogadva3ms3100 KiB
8Elfogadva3ms3124 KiB
9Elfogadva3ms3116 KiB
10Hibás válasz2ms3116 KiB
subtask40/30
11Hibás válasz3ms3428 KiB
12Elfogadva3ms3464 KiB
13Hibás válasz3ms3764 KiB
14Hibás válasz3ms3960 KiB
subtask50/40
15Elfogadva52ms13144 KiB
16Hibás válasz52ms13104 KiB
17Hibás válasz52ms13096 KiB
18Hibás válasz54ms13308 KiB
19Hibás válasz57ms13420 KiB
20Hibás válasz59ms13468 KiB
21Hibás válasz59ms13764 KiB
22Hibás válasz59ms13508 KiB
23Hibás válasz59ms13540 KiB
24Hibás válasz54ms13668 KiB
25Hibás válasz54ms13668 KiB
26Hibás válasz57ms13744 KiB
27Hibás válasz46ms12540 KiB
28Hibás válasz54ms14860 KiB
29Hibás válasz54ms14240 KiB
30Elfogadva68ms23712 KiB
31Elfogadva61ms18588 KiB
32Elfogadva56ms15844 KiB