Pagini recente » Cod sursa (job #2134171) | Cod sursa (job #1396108) | Cod sursa (job #674155) | Cod sursa (job #1742612) | Cod sursa (job #1897481)
#include <fstream>
using namespace std;
const int NMAX = 15000000 + 5;
const int MOD = 1048576;
int main()
{
ifstream cin("12perm.in");
ofstream cout("12perm.out");
int N;
cin >> N;
if (N <= 3) {
int fact = 1;
for (int i = 1; i <= N; ++ i)
fact *= i;
cout << fact << '\n';
return 0;
}
int d[4] = {0, 1, 1, 2};
int ans = 8;
for (int i = 4; i <= N; ++ i) {
d[i & 3] = (d[(i + 3) & 3] + d[(i + 1) & 3] + 1) & (MOD - 1);
ans = (ans + 2 * d[i & 3]) & (MOD - 1);
}
ans = (ans + 2 * MOD - 2 * d[(N - 1) & 3]) & (MOD - 1);
cout << ans << '\n';
return 0;
}