143192025-01-10 14:39:55kukkermanSzigetek (35 pont)cpp17Elfogadva 35/352ms964 KiB
#include <iostream>
#include <string>
#include <algorithm>
#include <cstdint>
#include <cstring>

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

    using std::cin;

    int n;
    cin >> n >> std::ws;

    std::string line;
    std::getline(cin, line);
    line.append(4 - (line.length() & 3), ' ');
    auto p = line.data();

    int a = 0, b = 1001, c, d;
    uint32_t x, y;
    while (n) {
        std::memcpy(&x, p, sizeof(uint32_t));
        y = x & 0x0f0f0f0f;

        switch (x & 0x10101010) {
        
        case 0x00100010:
            c = (y & 0x0f) + std::min(a, b);
            d = (y >> 16) + std::min(b, c);
            a = c;
            b = d;
            
            p += 4;
            n -= 2;
            break;

        case 0x00000010:
        case 0x10100010:
            c = (y & 0x0f) + std::min(a, b);
            a = b;
            b = c;

            p += 2;
            --n;
            break;

        case 0x10001010:
        case 0x00001010:
            c = (y & 0x0f) * 10 + ((y >> 8) & 0x0f) + std::min(a, b);
            a = b;
            b = c;

            p += 3;
            --n;
            break;

        case 0x00101010:
            c = (y & 0x0f) * 100 + ((y >> 8) & 0x0f) * 10 + (y >> 16) + std::min(a, b);
            a = b;
            b = c;

            p += 4;
            --n;
            break;

        default:
            c = 1000 + std::min(a, b);
            a = b;
            b = c;

            p += 5;
            --n;
        }
    }

    std::cout << b << '\n';

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base35/35
1Elfogadva0/01ms316 KiB
2Elfogadva0/02ms964 KiB
3Elfogadva1/11ms500 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms316 KiB
7Elfogadva1/11ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva2/21ms316 KiB
11Elfogadva2/21ms508 KiB
12Elfogadva2/21ms316 KiB
13Elfogadva2/21ms316 KiB
14Elfogadva2/22ms564 KiB
15Elfogadva2/21ms564 KiB
16Elfogadva2/22ms708 KiB
17Elfogadva2/22ms964 KiB
18Elfogadva2/22ms960 KiB
19Elfogadva2/22ms964 KiB
20Elfogadva2/22ms964 KiB
21Elfogadva2/22ms960 KiB
22Elfogadva2/22ms960 KiB