1126 2022. 03. 05 00:02:23 TSoma Toronyépítés (1,1,3,3) cpp14 Elfogadva 50/50 2ms 1312 KiB
#undef _GLIBCXX_DEBUG
#pragma GCC optimize("Ofast,inline")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization ("unroll-loops")

#include <stdio.h>
#include <stdint.h>

int main()
{
    int N;
#pragma warning(suppress : 4996)
    scanf("%d\n", &N);    

    int_fast32_t a = 2, b = 4, c = 10, d = 24, e = 56, f = 132;
    const int_fast32_t x = 2, y = 10105054000000000, z = 202101080000, m = 20210108;

    N -= 6;

    while (N > 0)
    {
        a = x * (f + d);
        b = x * (a + e);
        c = x * (b + f);
        d = x * (c + a);
        e = x * (d + b);
        f = x * (e + c);

        if (f >= y) {
            d %= z;
            e %= z;
            f %= z;
        }

        N -= 6;
    }


    switch (N % 6) {
        case 0: printf("%d\n", f % m); break;
        case -1: printf("%d\n", e % m); break;
        case -2: printf("%d\n", d % m); break;
        case -3: printf("%d\n", c % m); break;
        case -4: printf("%d\n", b % m); break;
        case -5: printf("%d\n", a % m); break;
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 2ms 1160 KiB
2 Elfogadva 0/0 1ms 1240 KiB
3 Elfogadva 3/3 1ms 1308 KiB
4 Elfogadva 3/3 1ms 1312 KiB
5 Elfogadva 4/4 1ms 1252 KiB
6 Elfogadva 4/4 1ms 1256 KiB
7 Elfogadva 4/4 2ms 1264 KiB
8 Elfogadva 4/4 1ms 1196 KiB
9 Elfogadva 4/4 1ms 1204 KiB
10 Elfogadva 4/4 1ms 1268 KiB
11 Elfogadva 4/4 1ms 1276 KiB
12 Elfogadva 4/4 2ms 1200 KiB
13 Elfogadva 4/4 2ms 1264 KiB
14 Elfogadva 4/4 1ms 1268 KiB
15 Elfogadva 2/2 1ms 1272 KiB
16 Elfogadva 2/2 1ms 1208 KiB