Three ones problem will not accepted. I don’t know what is problem. Can you find bug?
#include <bits/stdc++.h>
using namespace std;
// https://www.e-olymp.com/en/contests/17372/problems/181180
int main() {
int n;
cin>>n;
if (n == 1) {
cout<<"2";
return 0;
}
vector<vector<unsigned long long int>> dp(2, vector<unsigned long long int>(n + 1, 0));
dp[0][1] = dp[1][1] = 1;
dp[0][2] = dp[1][2] = 2;
for (int i = 3; i <= n; i++) {
dp[0][i] = (dp[0][i - 1] + dp[1][i - 1]) % 12345;
dp[1][i] = (dp[1][i - 2] + 2 * dp[0][i - 2]) % 12345;
}
cout<<dp[0][n] + dp[1][n];
return 0;
}