7357 2024. 01. 08 10:33:04 CWM Járdakövezés háromféle elemmel cpp17 Elfogadva 30/30 6ms 5624 KiB
#include <iostream>
#include <vector>
#include <set>
#include <queue>

using namespace std;
int mod = 2023;
int main()
{
    int n;
    cin >> n;
    vector<int> DPa = vector<int>(n+1);
    vector<int> DPb = vector<int>(n+1);
    vector<int> DPc = vector<int>(n + 1);
    DPa[0] = 1;
    DPa[1] = 2;
    DPb[0] = 0;
    DPb[1] = 2;
    DPc[0] = 1;
    DPc[1] = 2;
    for (size_t i = 1; i < n; i++)
    {
        //DPa cases
        DPa[i + 1] += DPc[i];
        DPa[i + 1] += 2 * DPb[i];
        DPa[i + 1] += 2 * DPb[i - 1];
        DPa[i + 1] += 2 * DPc[i - 1];
        DPa[i + 1] += DPa[i];
        DPa[i + 1] += DPa[i - 1];
        //DPb cases
        DPb[i + 1] += DPb[i];
        DPb[i + 1] += DPc[i];
        DPb[i + 1] += DPa[i];
        //DPc cases
        DPc[i + 1] += DPa[i+1];
        //mod
        DPa[i + 1] = DPa[i + 1] % mod;
        DPb[i + 1] = DPb[i + 1] % mod;
        DPc[i + 1] = DPc[i + 1] % mod;
    }
    cout << DPa[n];
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 30/30
1 Elfogadva 0/0 3ms 1816 KiB
2 Elfogadva 0/0 3ms 2052 KiB
3 Elfogadva 2/2 3ms 2260 KiB
4 Elfogadva 2/2 3ms 2348 KiB
5 Elfogadva 2/2 3ms 2540 KiB
6 Elfogadva 2/2 3ms 2628 KiB
7 Elfogadva 2/2 3ms 2756 KiB
8 Elfogadva 2/2 3ms 2856 KiB
9 Elfogadva 2/2 4ms 3512 KiB
10 Elfogadva 2/2 4ms 3824 KiB
11 Elfogadva 2/2 4ms 4632 KiB
12 Elfogadva 3/3 4ms 5108 KiB
13 Elfogadva 3/3 3ms 3460 KiB
14 Elfogadva 3/3 3ms 3612 KiB
15 Elfogadva 3/3 6ms 5624 KiB