105882024-04-06 10:09:14UVinceMágikus sorozatcpp17Hibás válasz 15/10068ms13320 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<int> z(n),a(n);
    stack<pair<int,int>> last;
    for (int 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 (int i : a) cout<<i<<" ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms2100 KiB
2Elfogadva4ms2436 KiB
subtask215/15
3Elfogadva3ms2308 KiB
4Elfogadva3ms2480 KiB
5Elfogadva3ms2800 KiB
subtask30/15
6Elfogadva3ms2724 KiB
7Elfogadva3ms2852 KiB
8Elfogadva3ms3064 KiB
9Elfogadva2ms3064 KiB
10Hibás válasz3ms3068 KiB
subtask40/30
11Hibás válasz3ms3100 KiB
12Elfogadva3ms3096 KiB
13Hibás válasz3ms3096 KiB
14Hibás válasz3ms3348 KiB
subtask50/40
15Elfogadva52ms7828 KiB
16Hibás válasz52ms7820 KiB
17Hibás válasz54ms7828 KiB
18Hibás válasz54ms8036 KiB
19Hibás válasz59ms8064 KiB
20Hibás válasz59ms8088 KiB
21Hibás válasz61ms8096 KiB
22Hibás válasz59ms8064 KiB
23Hibás válasz61ms8396 KiB
24Hibás válasz54ms8256 KiB
25Hibás válasz54ms8260 KiB
26Hibás válasz57ms8260 KiB
27Hibás válasz46ms7708 KiB
28Hibás válasz54ms9104 KiB
29Hibás válasz52ms8964 KiB
30Elfogadva68ms13320 KiB
31Elfogadva61ms11028 KiB
32Elfogadva57ms9676 KiB