Cod sursa(job #187346)

Utilizator vladianavladiana micu vladiana Data 3 mai 2008 14:23:50
Problema Sandokan Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
# include <stdio.h>

# define FIN "sandokan.in"
# define FOUT "sandokan.out"

long long n,k,rez,aux,m,min,max,i,s[5001],l,ct;

long long cmmdc(long long  a,long long b)
{
     if (b==0) return a;
          else return cmmdc(b, a%b);
}

int main()
{
    freopen(FIN,"r",stdin);
    freopen(FOUT,"w",stdout);
    scanf("%lld%lld",&n,&k);
    m=n;
    while (m>=k)
      {
          m-=(k-1);
      }
    m--; n--;
    k=n-m;
    if (k>m)
      {
         max=k;
         min=m;
      }
    else
      {
         max=m;
         min=k;
      }
    rez=1;
    for (i=1; i<=min; i++)
      s[i]=i;  
    for (i=max+1; i<=n; i++)
      {  
         ct=2;
         l=i;
         while (ct<=min && l>1)
           {
              if (s[ct]>1)
                {
                  aux=cmmdc(s[ct],l);
                  l/=aux;
                  s[ct]/=aux;
                }
              ct++;
           }
         long long j;
         for (j=1; j<=min; j++)
           printf("%ld ",s[j]);
          printf("%lld\n",l);   
         rez=(rez*l) % 2000003;
      }
    printf("%lld",rez);
    return 0;
}