Cod sursa(job #635553)

Utilizator teo721Pavel Teo teo721 Data 19 noiembrie 2011 13:09:16
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 4.01 kb
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    int fr,f2,f3,i,j,r,d,n,k=0,ad,d3,d2,ad2,ad3,fd3,fd2;
    fstream f("pascal.in",ios::in);
    f>>r>>d;
    f.close();
    if(d!=6)
    {     
         ad=d;
          while(r>=ad)
          {
           fr+=(int)(r/ad);
           ad*=d;
           }
         if(r%2)
          for(i=1;i<=r/2;i++)
          {
             f2=0;
             ad=d;
             while(i>=ad)
             {
              f2+=(int)(i/ad);
              ad*=d;
              }
              ad=d;
              while(r-i>=ad)
              {
               f2+=(int)(r-i/ad);
               ad*=d;
             }
             if(fr>f2)
               k+=2;
         }
         else
         {
          for(i=1;i<r/2;i++)
          {
             f2=0;
             ad=d;
             while(i>=ad)
             {
              f2+=(int)(i/ad);
              ad*=d;
              }
              ad=d;
              while(r-i>=ad)
              {
               f2+=(int)(r-i/ad);
               ad*=d;
             }
             if(fr>f2)
               k+=2;
          }
          i=r/2;
           f2=0;
           ad=d;
             while(i>=ad)
             {
              f2+=(int)(i/ad);
              ad*=d;
              }
             ad=d;
              while(r-i>=ad)
              {
               f2+=(int)(r-i/ad);
               ad*=d;
             }
             if(fr>f2)
               k++;
           }
    }
    if(d==6)
    {
      d3=3;d2=2;
      ad3=d3;
      while(r>=ad3)
      {
        fd3+=(int)(r/ad3);
        ad3*=d3;
      }
      ad2=d2;
      while(r>=ad3)
      {
        fd3+=(int)(r/ad3);
        ad3*=d3;
      }
       if(r%2)
          for(i=1;i<=r/2;i++)
          {
             f2=0;f3=0;
             ad3=d3;
             while(i>=ad3)
             {
              f3+=(int)(i/ad3);
              ad3*=d3;
              }
              ad2=d2;
              while(i>=ad2)
             {
              f2+=(int)(i/ad2);
              ad2*=d2;
              }
              ad3=d3;
              while(r-i>=ad3)
              {
               f3+=(int)(r-i/ad3);
               ad3*=d3;
             }
             ad2=d2;
             while(r-i>=ad2)
              {
               f2+=(int)(r-i/ad2);
               ad2*=d2;
             }
             
             if((fd3>f3)&&(fd2>f2))
               k+=2;
         }
         else
         {
          for(i=1;i<r/2;i++)
          {
             f2=0;f3=0;
             ad3=d3;
             while(i>=ad3)
             {
              f3+=(int)(i/ad3);
              ad3*=d3;
              }
              ad2=d2;
              while(i>=ad2)
             {
              f2+=(int)(i/ad2);
              ad2*=d2;
              }
              ad3=d3;
              while(r-i>=ad3)
              {
               f3+=(int)(r-i/ad3);
               ad3*=d3;
                }
             ad2=d2;
             while(r-i>=ad2)
              {
               f2+=(int)(r-i/ad2);
               ad2*=d2;
               }
             
             if((fd3>f3)&&(fd2>f2))
               k+=2;
         }
          i=r/2;
           f2=0;f3=0;
             ad3=d3;
             while(i>=ad3)
             {
              f3+=(int)(i/ad3);
              ad3*=d3;
              }
              ad2=d2;
              while(i>=ad2)
             {
              f2+=(int)(i/ad2);
              ad2*=d2;
              }
              ad3=d3;
              while(r-i>=ad3)
              {
               f3+=(int)(r-i/ad3);
               ad3*=d3;
             }
             ad2=d2;
             while(r-i>=ad2)
              {
               f2+=(int)(r-i/ad2);
               ad2*=d2;
             }
             
             if((fd3>f3)&&(fd2>f2))
               k++;
                  
         }    
    
    }
   fstream g("pascal.out",ios::out);
   g<<k;
   g.close();
}