Pagini recente » Atasamentele paginii Concursul de Programare organizat de UTCN (ediția 2021) | Profil DRAGOSH | Profil DRAGOSH | Istoria paginii utilizator/uvianis | Cod sursa (job #25344)
Cod sursa(job #25344)
#include <stdio.h>
#define maxN 5100
#define dcon 666013
int n,k,res,vec[maxN];
void inputFunc(){
FILE*fi=fopen("kperm.in","r");
fscanf(fi,"%d %d",&n,&k);
fclose(fi);
}
void outputFunc(){
FILE*fi=fopen("kperm.out","w");
fprintf(fi,"%d",res);
fclose(fi);
}
int main(){
inputFunc();
int sum=k*(k+1)/2,d=n/k,m=n%k;
long long c=1,p=1;
if(sum%k){res=0;outputFunc();return 0;}
for(int i=0;i<k;i++)vec[i]=d;
for(int i=0;i<m;i++)vec[i]++;
for(int i=0;i<k;i++){
c*=vec[i];c%=dcon;
}
for(int i=0;i<k;i++)vec[i]=k-i;
for(int i=0;i<m;i++)vec[i]--;
for(int i=0;i<k;i++){
p*=vec[i];c%=dcon;
}
res=(c*p)%dcon;
outputFunc();
return 0;
}