Cod sursa(job #2330389)
| Utilizator | Data | 28 ianuarie 2019 12:18:04 | |
|---|---|---|---|
| Problema | Kperm | Scor | 60 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <fstream>
using namespace std;
ifstream in("kperm.in");
ofstream out("kperm.out");
int fact(int k)
{
long long f = 1;
for(int i = 2; i <= k; i++)
{
f *= 1LL * i;
f %= 666013;
}
return f;
}
int n, k;
long long ans, f1;
int main()
{
in >> n >> k;
if(k % 2 == 0)
{
out << 0;
return 0;
}
int x = n % k;
ans = (fact(x) * fact(k-x)) % 666013;
f1 = fact(n/k);
for(int i = 1; i <= k; i++)
{
ans *= f1 * (i <= n%k ? n/k+1 : 1);
ans %= 666013;
}
out << ans;
return 0;
}
