5745 2023. 09. 15 14:55:18 kukkerman Táblajáték cpp14 Elfogadva 50/50 3ms 3656 KiB
#include <iostream>
#include <vector>

std::vector<int> beolvas(std::istream &in) {
    int k;
    in >> k;

    std::vector<int> v(k);
    for (auto i = 0; i < k; i++) {
        in >> v[i];
    }

    return v;
}

void feldolgoz(const std::vector<int> &lepesek) {
    std::string poz{ "1" };

    size_t i;
    for (auto l : lepesek) {
        switch (l) {
        case 0: // balra le
            poz.push_back('0');
            break;

        case 1: // jobbra le
            poz.push_back('1');
            break;

        case 2: // fel
            poz.pop_back();
            break;

        case 3: // balra
            for (i = poz.size() - 1; poz[i] == '0'; i--) {
                poz[i] = '1';
            }
            poz[i] = '0';
            break;

        case 4: // jobbra
            for (i = poz.size() - 1; poz[i] == '1'; i--) {
                poz[i] = '0';
            }
            poz[i] = '1';
            break;
        }
    }

    const auto n = poz.size();
    std::cout << n - 1 << '\n';

    i = 1u;
    for (i = 1u; i < n && poz[i] == '0'; i++) {}
    if (i < n) {
        for (; i < n; i++) {
            std::cout << poz[i];
        }
    } else {
        std::cout << '0';
    }
    std::cout << std::endl;
}

int main() {
    const auto v = beolvas(std::cin);
    feldolgoz(v);

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1812 KiB
2 Elfogadva 0/0 3ms 2008 KiB
3 Elfogadva 3/3 2ms 2152 KiB
4 Elfogadva 3/3 3ms 2352 KiB
5 Elfogadva 3/3 2ms 2444 KiB
6 Elfogadva 3/3 3ms 2660 KiB
7 Elfogadva 3/3 2ms 2744 KiB
8 Elfogadva 3/3 2ms 2756 KiB
9 Elfogadva 3/3 2ms 2764 KiB
10 Elfogadva 3/3 3ms 2896 KiB
11 Elfogadva 3/3 2ms 3108 KiB
12 Elfogadva 3/3 2ms 3196 KiB
13 Elfogadva 4/4 2ms 3332 KiB
14 Elfogadva 4/4 3ms 3548 KiB
15 Elfogadva 4/4 2ms 3632 KiB
16 Elfogadva 4/4 2ms 3640 KiB
17 Elfogadva 4/4 3ms 3656 KiB