73572024-01-08 10:33:04CWMJárdakövezés háromféle elemmelcpp17Elfogadva 30/306ms5624 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ÖsszpontTesztVerdiktIdőMemória
base30/30
1Elfogadva0/03ms1816 KiB
2Elfogadva0/03ms2052 KiB
3Elfogadva2/23ms2260 KiB
4Elfogadva2/23ms2348 KiB
5Elfogadva2/23ms2540 KiB
6Elfogadva2/23ms2628 KiB
7Elfogadva2/23ms2756 KiB
8Elfogadva2/23ms2856 KiB
9Elfogadva2/24ms3512 KiB
10Elfogadva2/24ms3824 KiB
11Elfogadva2/24ms4632 KiB
12Elfogadva3/34ms5108 KiB
13Elfogadva3/33ms3460 KiB
14Elfogadva3/33ms3612 KiB
15Elfogadva3/36ms5624 KiB