Nu aveti permisiuni pentru a descarca fisierul grader_test5.in
Cod sursa(job #1411594)
| Utilizator | Data | 31 martie 2015 20:22:08 | |
|---|---|---|---|
| Problema | Kperm | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.86 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("kperm.in");
ofstream fout("kperm.out");
const int MOD = 666013;
int N, K, lim;
long long sol1, sol2;
long long fact[5005];
int Rmic, Rmare, Cmic, Cmare;
int main()
{
fin >> N >> K;
Rmic = N % K;
Rmare = K - Rmic;
Cmare = (N - Rmic) / K;
Cmic = Cmare + 1;
lim = max(K, Cmic);
fact[0] = 1LL;
for (int i = 1; i <= lim; ++i)
fact[i] = (i * fact[i - 1]) % MOD;
sol1 = fact[Rmic];
for (int i = 1; i <= Rmic; ++i)
sol1 = (sol1 * fact[Cmic]) % MOD;
sol2 = fact[Rmare];
for (int i = 1; i <= Rmare; ++i)
sol2 = (sol2 * fact[Cmare]) % MOD;
if (K % 2 == 0)
fout << 0 << '\n';
else
fout << (sol1 * sol2) % MOD << '\n';
fin.close();
fout.close();
return 0;
}
