Cod sursa(job #19052)

Utilizator RazvanSSavu Razvan RazvanS Data 18 februarie 2007 18:26:31
Problema Pascal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>

#define N 2500001

using namespace std;


int V[N];
int r, d;
int S;

ofstream fout("pascal.out");

void showV(void)
    {int i;
     for(i=1;i<=r/2;i++)
          fout<<V[i]<<" ";
     fout<<'\n';
}      

int nrdiv(int n)
    {int s=0;
     while(n%d==0)
        {n/=d;
         s++;
        }
     
     return s;
    }            

void completeV(void)
      {int i; if(r==0) {V[1]=0; return;}
       V[1]=nrdiv(r);
       for(i=2;i<=r/2;i++)
           V[i]=V[i-1]+nrdiv(r-i+1)-nrdiv(i);
      }
      
int main(void)
      {ifstream fin("pascal.in");
       int i;
       fin>>r>>d;
       fin.close();
       if(d!=4){
       completeV();
       for(i=1;i<=(r-1)/2;i++)
            if(V[i]>0) S++;
       S*=2;
       if(r%2==0) S+=(V[r/2]>0);
       //showV();
       }
       else {d=2;
             completeV();
             for(i=1;i<=(r-1)/2;i++)
                if(V[i]>1) S++;
             S*=2;
             if(r%2==0) S+=(V[r/2]>1);
            }    
       fout<<S<<'\n';       
       fout.close();
       
       return 0;
       }