227152026-01-15 17:07:39algoproJárdakövezés háromféle elemmelcpp17Accepted 30/303ms1212 KiB
// UUID: f113ea58-d803-4825-a970-b247a15256f0
#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n; cin >> n;
	vector<int> a(n + 1), b(n + 1);
	int mod = 2023;
	a[0] = 1; b[0] = 1; a[1] = 2; b[1] = 1;
	for (int i = 2; i <= n; i ++) {
		b[i] = b[i - 1] + a[i - 1] + a[i - 2];
		a[i] = b[i] + 3 * b[i - 1] + a[i - 1] + 2 * a[i - 2];
		b[i] %= mod; a[i] %= mod;
	}
	cout << a[n];
	return 0;
}
/*
dp[1] = 2; dp[2] = 11;
	int pref1 = 2, pref2 = 11, mod = 2023;
	for (int i = 3; i <= n; i ++) {
		dp[i] += 2 * dp[i - 1] + 7 * dp[i - 2];
		if (i % 2 == 0) {
			dp[i] += 4 * (pref1 - dp[i - 1]);
			dp[i] += 6 * (pref2 - dp[i - 2]);
			dp[i] %= mod;
			pref2 += dp[i];
			pref2 %= mod;
		}
		else {
			dp[i] += 4 * (pref2 - dp[i - 1]);
			dp[i] += 6 * (pref1 - dp[i - 2]);
			dp[i] %= mod;
			pref1 += dp[i];
			pref1 %= mod;
		}
	}
	cout << dp[n];
	*/
SubtaskSumTestVerdictTimeMemory
base30/30
1Accepted0/01ms316 KiB
2Accepted0/01ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/22ms564 KiB
10Accepted2/22ms564 KiB
11Accepted2/22ms792 KiB
12Accepted3/32ms840 KiB
13Accepted3/31ms316 KiB
14Accepted3/31ms504 KiB
15Accepted3/33ms1212 KiB