Cod sursa(job #25211)

Utilizator quicksandMatei Tene quicksand Data 4 martie 2007 11:26:54
Problema Kperm Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasele 11-12 Marime 0.7 kb
#include <stdio.h>
#define MOD (long)666013

long n,k,d,m,rez;

void citeste ()
{ FILE* in=fopen ("kperm.in","r");
  fscanf (in,"%ld%ld",&n,&k);
  fclose (in);
}

long putere (long a,long b)
{ long i,p;

  p=1;
  for (i=1; i<=b; i++)
      p=(p*a)%MOD;
  return p;
}

long factorial (int a)
{ long i,f;

  f=1;
  for (i=2; i<=a; i++)
      f=(f*i)%MOD;
  return f;
}

void tipar ()
{ FILE *out=fopen ("kperm.out","w");
  fprintf (out,"%ld\n",rez%MOD);
  fclose (out);
}

int main ()
{ citeste ();
  d=n/k;
  m=n%k;

  rez=putere (d+1,m);
  rez*=putere (d,k); rez%=MOD;
  if (d>1)
     { rez*=putere (d-1,k-m); rez%=MOD; }
  rez*=factorial (m);

  tipar ();
  return 0;
}