Pagini recente » Cod sursa (job #1629764) | Solutii preONI 2006 - Runda 1 | Cod sursa (job #232509) | Cod sursa (job #3260414) | Cod sursa (job #3250014)
#pragma GCC optimize("O3")
#pragma GCC optimize("fast-math")
#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
#define ll long long
#define mod 1048576
using namespace std;
ll n, fact[15000005], sol;
ifstream fin("12perm.in");
ofstream fout("12perm.out");
int main()
{
fin >> n;
fact[0] = 1;
for(int i = 1; i <= n; ++i)
{
fact[i] = ((fact[i - 1] * 1ll * i) % mod);
if(i >= 3)
{
sol = (sol + 1ll * (i - 3));
}
if(n - i - 2 >= 0)
{
sol = sol + 1ll * (n - i - 2);
}
}
fout << (fact[n] - (1ll * (n * (n - 1) % mod) * ((sol / 2) % mod)) + mod) % mod;
return 0;
}