193422025-12-04 21:35:52szabelrHírlánccpp17Hibás válasz 0/8068ms576 KiB
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int k, x;
    // We don't need 'height'. The vector size IS the height.
    vector<int> binary;
    cin >> k;
    for (int i = 0; i < k; i++)
    {
        cin >> x;
        if (x == 0) {
            // Move Down-Left: Just add a 0
            binary.push_back(0);
        }
        else if (x == 1) {
            // Move Down-Right: Just add a 1
            binary.push_back(1);
        }
        else if (x == 2) {
            // Move Up: Remove the last step
            if (!binary.empty()) binary.pop_back();
        }
        else if (x == 3) {
            // Move Left: Subtract 1
            // FIX: Don't pop_back. Just flip bits. 
            // We trust the input is valid, so we don't need to check y==0 specifically.
            for (int y = binary.size() - 1; y >= 0; y--)
            {
                if (binary[y] == 1)
                {
                    binary[y] = 0; // Flip 1 to 0
                    // Set everything to the right to 1
                    for (int z = y + 1; z < binary.size(); z++) 
                        binary[z] = 1;
                    break;
                }
            }
        }
        else if (x == 4) {
            // Move Right: Add 1
            // FIX: Don't push_back. Valid moves mean we stay in the same row.
            for (int y = binary.size() - 1; y >= 0; y--)
            {
                if (binary[y] == 0)
                {
                    binary[y] = 1; // Flip 0 to 1
                    // Set everything to the right to 0
                    for (int z = y + 1; z < binary.size(); z++) 
                        binary[z] = 0;
                    break;
                }
            }
        }
    }

    // OUTPUT SECTION
    
    // 1. Print the row number
    cout << binary.size() << endl;

    // 2. Print the binary number (Skipping leading zeros)
    // Example: If vector is [0, 1, 1], we print "11".
    
    bool hasStartedPrinting = false;
    for (int i = 0; i < binary.size(); i++)
    {
        if (binary[i] == 1) hasStartedPrinting = true;
        
        if (hasStartedPrinting) {
            cout << binary[i];
        }
    }
    
    // Edge case: If the number is 0 (vector is all zeros or empty), nothing printed above.
    // So we print a single 0.
    if (!hasStartedPrinting) {
        cout << 0;
    }
    
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz1ms508 KiB
subtask20/20
2Hibás válasz1ms316 KiB
3Hibás válasz1ms400 KiB
4Hibás válasz1ms316 KiB
5Hibás válasz1ms316 KiB
6Hibás válasz2ms512 KiB
7Hibás válasz2ms316 KiB
8Hibás válasz2ms512 KiB
9Hibás válasz2ms316 KiB
10Hibás válasz1ms316 KiB
11Hibás válasz1ms316 KiB
12Hibás válasz1ms316 KiB
subtask30/18
13Hibás válasz68ms392 KiB
14Hibás válasz68ms396 KiB
15Hibás válasz68ms396 KiB
16Hibás válasz67ms560 KiB
17Hibás válasz68ms316 KiB
18Hibás válasz68ms404 KiB
19Hibás válasz68ms508 KiB
20Hibás válasz68ms316 KiB
21Hibás válasz68ms576 KiB
22Hibás válasz68ms400 KiB
subtask40/42
23Hibás válasz2ms316 KiB
24Hibás válasz1ms316 KiB
25Hibás válasz1ms400 KiB
26Hibás válasz1ms316 KiB
27Hibás válasz1ms316 KiB
28Hibás válasz2ms512 KiB
29Hibás válasz2ms316 KiB
30Hibás válasz2ms512 KiB
31Hibás válasz2ms316 KiB
32Hibás válasz1ms316 KiB
33Hibás válasz1ms316 KiB
34Hibás válasz1ms316 KiB
35Hibás válasz68ms392 KiB
36Hibás válasz68ms396 KiB
37Hibás válasz68ms396 KiB
38Hibás válasz67ms560 KiB
39Hibás válasz68ms316 KiB
40Hibás válasz68ms404 KiB
41Hibás válasz68ms508 KiB
42Hibás válasz68ms316 KiB
43Hibás válasz68ms576 KiB
44Hibás válasz68ms400 KiB
45Hibás válasz68ms508 KiB
46Hibás válasz68ms316 KiB
47Hibás válasz68ms508 KiB
48Hibás válasz68ms404 KiB
49Hibás válasz68ms324 KiB
50Hibás válasz68ms328 KiB
51Hibás válasz68ms328 KiB
52Hibás válasz68ms328 KiB
53Hibás válasz68ms508 KiB
54Hibás válasz68ms328 KiB