Cod sursa(job #1932158)
Utilizator | Data | 19 martie 2017 15:42:42 | |
---|---|---|---|
Problema | 12-Perm | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.43 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("12perm.in");
ofstream g("12perm.out");
int dp[5],n;
int mod=1048576;
int main()
{
f >> n;
if(n <= 2)
{
g << n;
return 0;
}
dp[1] = 1;
dp[2] = 2;
dp[3] = 6;
dp[0] = 12;
for(int i=5; i<=n; i++)
dp[i%4] = (dp[(i-1)%4] + dp[(i-3)%4] + 2*(i-2)) % mod;
g << dp[n%4];
return 0;
}