5042021-11-03 18:40:06SzankaBenedekToronyépítés (1,1,3,3)cpp11Accepted 50/504ms1972 KiB
#include <iostream>
#include <vector>

using namespace std;

int fast_mod(const int input, const int ceil) {
    return input >= ceil ? input % ceil : input;
}

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

    unsigned int N;
    std::cin >> N;

    unsigned int a = 2;
    unsigned int b = 4;
    unsigned int c = 10;

    for (int n = 3; n < N; n += 3)
    {
        a = 2 * (c + a);
        b = 2 * (a + b);
        c = 2 * (b + c);

        a = a >= 20210108 ? a % 20210108 : a;
        b = b >= 20210108 ? b % 20210108 : b;
        c = c >= 20210108 ? c % 20210108 : c;
    }

    switch (N >= 3 ? N % 3 : N)
    {
    case 0:
        std::cout << c;
        break;
    case 1:
        std::cout << a;
        break;
    case 2:
        std::cout << b;
        break;
    }

    // int N;
    // cin >> N;

    // int a = 2;
    // int b = 4;
    // int c = 10;
    // for (int n = 3; n < N; n += 3)
    // {
    //     a = 2 * (c + a);
    //     a = fast_mod(a , 20210108);
    //     b = 2 * (a + b);
    //     b = fast_mod(b , 20210108);
    //     c = 2 * (b + c);
    //     c = fast_mod(c , 20210108);

    //     // a = 2 * (c + a) % 20210108;
    //     // b = 2 * (a + b) % 20210108;
    //     // c = 2 * (b + c) % 20210108;
    // }

    // switch (fast_mod(N,3))
    // {
    // case 1:
    //     cout << a;
    //     break;
    // case 2:
    //     cout << b;
    //     break;
    // case 0:
    //     cout << c;
    //     break;
    // }
}

// int t[3];
// a = 2;
// b = 4;
// c = 10;
// for (; i > 3; i -= 3)
// {
//     a = (2 * c + 2 * a) % 20210108;
//     b = (2 * a + 2 * b) % 20210108;
//     c = (2 * b + 2 * c) % 20210108;
// }
// cout << t[i - 1] << "\n";

// int v[input];
// v[0] = 2;
// v[1] = 4;
// v[2] = 10; //8+2
// for (int n = 3; n < input; n++)
// {
//     v[n] = (2 * v[n - 1] + 2 * v[n - 3]) % 20210108;
// }
// cout << v[input - 1] << "\n";
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/02ms1884 KiB
2Accepted0/01ms1904 KiB
3Accepted3/31ms1972 KiB
4Accepted3/31ms1964 KiB
5Accepted4/41ms1968 KiB
6Accepted4/41ms1964 KiB
7Accepted4/44ms1972 KiB
8Accepted4/41ms1968 KiB
9Accepted4/41ms1968 KiB
10Accepted4/41ms1964 KiB
11Accepted4/42ms1968 KiB
12Accepted4/44ms1964 KiB
13Accepted4/44ms1964 KiB
14Accepted4/42ms1968 KiB
15Accepted2/21ms1972 KiB
16Accepted2/21ms1964 KiB