Cod sursa(job #1036825)

Utilizator ericptsStavarache Petru Eric ericpts Data 19 noiembrie 2013 17:28:38
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <iostream>

using namespace std;

int R,D;

ifstream in("pascal.in");
ofstream out("pascal.out");

int p2 = 0, p3 = 0, p5 = 0;

int desc(int num, const int del){
    while(num && num % 2 == 0){
        num /= 2;
        p2 += del;
    }
    while(num && num % 3 == 0){
        num /= 3;
        p3 += del;
    }
    while(num && num % 5 == 0){
        num /= 5;
        p5 += del;
    }
}

int main(){
    in >> R >> D;
    int ans = 0;
    for(int i = 1 ; 2 * i <= R + 2 ; ++i){

        if( (D == 2 && p2) || (D == 3 && p3) || (D == 4 && p2 >= 2) || (D == 5 && p5) || (D == 6 && p2 && p3)){
            ans += 2;
            if(2 * i == R )
                --ans;
        }

        desc(R - i + 1, 1);
        desc(i, -1);
    }
    out << ans << "\n";
}