Cod sursa(job #1197282)

Utilizator YoChinezuWeng Mihai Alexandru YoChinezu Data 11 iunie 2014 16:21:44
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <cstdio>

using namespace std;

inline int NoName(int n,int j){
    int cate=0;
    if(j==4){
        j=2;
    }
    if(j==6){
        j=3;
    }
    int rr=j;
    while(n>=rr){
        cate+=n/rr;
        rr*=j;
    }
    return cate;
}

int main(){
    freopen("pascal.in", "r", stdin);
    freopen("pascal.out", "w", stdout);
    int r,d,rasp=0,rasp2=0,ju;
    scanf("%d%d",&r,&d);
    int a,b;
    ju=(r+1)/2;
    for(int i=0;i<ju;++i){
        a=NoName(r,d);
        b=NoName(i,d);
        a=a-b;
        b=NoName(r-i,d);
        a=a-b;
        if(a!=0){
            if(d==4){
                if(a>=2)
                {
                    rasp+=2;
                }
            }else
                if(d==6){
                
                    a=NoName(r,2);
                    b=NoName(i,2);
                    a=a-b;
                    b=NoName(r-i,2);
                    a=a-b;
                    if(a!=0){
                        rasp+=2;
                    }
                }
            else{
                rasp+=2;
            }
        }
    }
    if((r+1)%2==1){
        a=NoName(r,d);
        b=NoName(ju,d);
        a=a-b;
        b=NoName(r-ju,d);
        a=a-b;
        if(a!=0){
            if(d==4){
                if(a%2==0)
                {
                    ++rasp2;
                }
            }else{
                ++rasp2;
            }
        }
    }
    printf("%d",rasp+rasp2);
    return 0;
}