Cod sursa(job #787395)

Utilizator badmanDragan Dan badman Data 13 septembrie 2012 12:18:04
Problema Pascal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <cstdio>

using namespace std;

int r, d, i, aux[6], x, nr;

int main() {
     FILE *fin = fopen("pascal.in", "r");
     FILE *fout = fopen("pascal.out", "w");
     fscanf(fin, "%d %d", &r, &d);
     for(i = 1; i <= r; ++i) {
          x = r - i + 1;
          while(x % 2 == 0) {
              ++aux[2]; x /= 2;
          }
          while(x % 3 == 0) {
              ++aux[3]; x /= 3;
          }
          while(x % 5 == 0) {
              ++aux[5]; x /= 5;
          }
          x = i;
          while(x % 2 == 0) {
              --aux[2]; x /= 2;
          }
          while(x % 3 == 0) {
              --aux[3]; x /= 3;
          }
          while(x % 5 == 0) {
              --aux[5]; x /= 5;
          }
          if(d == 2 && aux[2])
              ++nr;
          else if(d == 3 && aux[3])
              ++nr;
          else if(d == 4 && aux[2] > 1)
              ++nr;
          else if(d == 5 && aux[5])
              ++nr;
          else if(d == 6 && aux[2] && aux[3])
              ++nr;
     }
     fprintf(fout,"%d", nr);
     return 0;
}