Cod sursa(job #634611)

Utilizator teo721Pavel Teo teo721 Data 16 noiembrie 2011 19:24:17
Problema Pascal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.52 kb
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    unsigned  long int i,j,z=0,k=0,r,d,n,rf=1,f1,f2,a,v[50000],u,s[100000],p=1;
    fstream f("pascal.in",ios::in);
    f>>r;f>>d;
    f.close();
   
    if(r%2==0) 
    {
      for(i=1;i<r/2;i++)
      {
        p=1;
         for(j=1;j<=100000;j++)
           s[j]=j;
         for(j=1;j<=50000;j++)
           v[j]=j;
        n=r-i+1;
        for(j=n;j<=r;j++)
         for(u=i;u>=2;u--)
           if(s[j]%v[u]==0)
           {
             s[j]=s[j]/v[u];
             }
        for(j=n;j<=r;j++)
          p*=s[j];
        if(p%d==0)
         z+=2;
      }
       for(j=1;j<=100000;j++)
           s[j]=j;
         for(j=1;j<=50000;j++)
           v[j]=j;
       for(j=r/2+1;j<=r;j++)
       for(u=r/2;u>=2;u--)
         if(s[j]%v[u]==0)
           {
             s[j]=s[j]/v[u];
             }
         p=1;
        for(j=r/2+1;j<=r;j++)
          p*=s[j];
        if(p%d==0)
         z++;
      }
   else
      for(i=1;i<=r/2;i++)
      {
                         p=1;
         for(j=1;j<=100000;j++)
           s[j]=j;
         for(j=1;j<=50000;j++)
           v[j]=j;
        n=r-i+1;
        for(j=n;j<=r;j++)
         for(u=i;u>=2;u--)
           if(s[j]%v[u]==0)
           {
             s[j]=s[j]/v[u];
             }
        for(j=n;j<=r;j++)
          p*=s[j];
        if(p%d==0)
         z+=2;
      }
   fstream g("pascal.out",ios::out);
   g<<z;
    g.close();
    
    system("pause");
}