16222022-11-29 18:12:46kovacs.peter.18fTáblajátékcpp11Futási hiba 46/507ms4028 KiB
#include <iostream>
#include <vector>

using namespace std;

int main() {
    cin.sync_with_stdio(false);
    cin.tie(nullptr);

    int K;
    cin >> K;
    int row = 0, count;
    vector<char> digitS { 0 };
    while (K--) {
        int L;
        cin >> L;
        switch (L) {
            case 0:
                ++row;
                // *2
                while (digitS.empty());
                if (digitS[0]) {
                    digitS.push_back(0);
                }
                break;
            case 1:
                ++row;
                // *2+1
                while (digitS.empty());
                if (digitS[0]) {
                    digitS.push_back(1);
                }
                else {
                    digitS[0] = 1;
                }
                break;
            case 2:
                --row;
                // /2
                digitS.pop_back();
                break;
            case 3:
                // -1
                for (count = 0; !digitS.back(); count++) {
                    digitS.pop_back();
                    while (digitS.empty());
                }
                if (digitS.size() == 1) {
                    digitS.pop_back();
                }
                else {
                    digitS.back() = 0;
                }
                while (count--) {
                    digitS.push_back(1);
                }
                break;
            case 4:
                // +1
                for (count = 0; !digitS.empty() && digitS.back(); count++) {
                    digitS.pop_back();
                }
                if (!digitS.empty()) {
                    digitS.back() = 1;
                }
                else {
                    digitS.push_back(1);
                }
                while (count--) {
                    digitS.push_back(0);
                }
                break;
        }
    }
    cout << row << '\n';
    for (auto e : digitS) {
        cout << (int)e;
    }
    cout << '\n';
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base46/50
1Elfogadva0/03ms1828 KiB
2Elfogadva0/02ms2016 KiB
3Elfogadva3/32ms2252 KiB
4Elfogadva3/32ms2480 KiB
5Elfogadva3/32ms2536 KiB
6Elfogadva3/32ms2532 KiB
7Elfogadva3/32ms2732 KiB
8Elfogadva3/32ms2836 KiB
9Elfogadva3/32ms3040 KiB
10Elfogadva3/32ms3244 KiB
11Elfogadva3/32ms3472 KiB
12Elfogadva3/32ms3548 KiB
13Elfogadva4/42ms3524 KiB
14Elfogadva4/42ms3520 KiB
15Elfogadva4/42ms3524 KiB
16Elfogadva4/42ms3892 KiB
17Futási hiba0/47ms4028 KiB