Cod sursa(job #1255697)
| Utilizator | Data | 5 noiembrie 2014 01:39:10 | |
|---|---|---|---|
| Problema | Kperm | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
#define mod 666013
using namespace std;
ifstream fin ("kperm.in");
ofstream fout ("kperm.out");
long long n,k,fact[5010],p[5010],sol;
int main () {
fin>>n>>k;
if ((k*(k+1)/2)%k != 0) {
fout<<"0\n";
return 0;
}
fact[0]=1;
for (int i=1;i<=n;i++){
fact[i]=(fact[i-1]*i)%mod;
p[i%k]++;
}
sol=(fact[n%k]*fact[k-(n%k)])%mod;
for (int i=0;i<k;i++)
sol=(sol*fact[p[i]])%mod;
fout <<sol%mod;
return 0;
}
