35762023-03-01 08:57:12AblablablaTáblajátékcpp17Accepted 50/503ms4116 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<int> szelesseg;
    int melyseg = 0;
    bool csaknul = true;
    int le = 0;
    for(int i = 0; i < n; i++){
        int a;
        cin >> a;
        if(a == 0){
            szelesseg.push_back(0);
            melyseg++;
        } else if(a == 1){
            szelesseg.push_back(1);
            melyseg++;
            csaknul = false;
        } else if(a == 2){
            szelesseg.pop_back();
            melyseg--;
        } else if(a == 3){  //csökkentjük eggyel
            int j = szelesseg.size() - 1;
            while(j >= 0 && szelesseg[j] == 0){
                szelesseg[j] = 1;
                j--;
            }
            szelesseg[j] = 0;
            csaknul = false;
        } else if(a == 4){  //növeljük eggyel
            int j = szelesseg.size() - 1;
            while(j >= 0 && szelesseg[j] == 1){
                szelesseg[j] = 0;
                j--;
            }
            szelesseg[j] = 1;
            csaknul = false;
        }
    }

    cout << melyseg << "\n";
    bool a = false;
    for(int i = 0; i < szelesseg.size(); i++){
        if(a){
            cout << szelesseg[i];
        } else if(!a && szelesseg[i] == 1){
            cout << szelesseg[i];
            a = true;
        }
    }

    if(!a){
        cout << "0";
    }
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/03ms1812 KiB
2Accepted0/03ms2060 KiB
3Accepted3/33ms2292 KiB
4Accepted3/33ms2348 KiB
5Accepted3/33ms2424 KiB
6Accepted3/33ms2676 KiB
7Accepted3/33ms2892 KiB
8Accepted3/33ms3092 KiB
9Accepted3/33ms3304 KiB
10Accepted3/33ms3512 KiB
11Accepted3/32ms3600 KiB
12Accepted3/33ms3848 KiB
13Accepted4/43ms3900 KiB
14Accepted4/43ms3784 KiB
15Accepted4/43ms4028 KiB
16Accepted4/43ms4112 KiB
17Accepted4/43ms4116 KiB