105872024-04-06 09:37:07UVinceMágikus sorozatcpp17Hibás válasz 0/10063ms29512 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);

    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;
            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 [f,l]=last.top();
                last.pop();
                if (last.top().second==n){
                    if (a[i-f]==1) a[i]==2;
                    else a[i]=5-a[i-f];
                }
            }
        }
    }
    for (int i : a) cout<<i<<" ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1824 KiB
2Hibás válasz4ms2276 KiB
subtask20/15
3Elfogadva3ms2196 KiB
4Hibás válasz3ms2308 KiB
5Hibás válasz3ms2544 KiB
subtask30/15
6Elfogadva3ms2604 KiB
7Elfogadva3ms2836 KiB
8Elfogadva3ms3040 KiB
9Elfogadva3ms3396 KiB
10Hibás válasz3ms3672 KiB
subtask40/30
11Hibás válasz3ms3836 KiB
12Hibás válasz3ms3980 KiB
13Hibás válasz3ms4268 KiB
14Hibás válasz3ms4492 KiB
subtask50/40
15Hibás válasz48ms9380 KiB
16Hibás válasz50ms10092 KiB
17Hibás válasz52ms14536 KiB
18Hibás válasz52ms16320 KiB
19Hibás válasz54ms17600 KiB
20Hibás válasz57ms18968 KiB
21Hibás válasz57ms20336 KiB
22Hibás válasz57ms21704 KiB
23Hibás válasz57ms22900 KiB
24Hibás válasz50ms20364 KiB
25Hibás válasz52ms24236 KiB
26Hibás válasz54ms25544 KiB
27Hibás válasz43ms21804 KiB
28Hibás válasz50ms22424 KiB
29Hibás válasz50ms23148 KiB
30Elfogadva63ms29512 KiB
31Elfogadva56ms28488 KiB
32Elfogadva52ms27956 KiB