Cod sursa(job #804368)

Utilizator calincojCalin Cojocariu calincoj Data 29 octombrie 2012 18:18:53
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<iostream>
#include<cstdio>
#define M 5
using namespace std;
int n,d,D,x,e,E,lo,hi,sol;
int main()
{
    freopen("pascal.in","r",stdin);
    freopen("pascal.out","w",stdout);
    scanf("%d%d",&n,&d);
    if(d==2||d==3||d==5)
    {
        for(lo=1,hi=n;hi>=1;lo++,hi--)
        {
            for(x=hi;x%d==0;x/=d)e++;
            for(x=lo;x%d==0;x/=d)e--;
            if(e)sol++;
        }
        printf("%d",sol);
        return 0;
    }
    if(d==4)
    {
        d=2;
        for(lo=1,hi=n;hi>=1;lo++,hi--)
        {
            for(x=hi;x%d==0;x/=d)e++;
            for(x=lo;x%d==0;x/=d)e--;
            if(e>1)sol++;
        }
        printf("%d",sol);
        return 0;
    }
    d=2;D=3;
    for(lo=1,hi=n;hi>=1;lo++,hi--)
    {
        for(x=hi;x%d==0;x/=d)e++;
        for(x=lo;x%d==0;x/=d)e--;
        for(x=hi;x%D==0;x/=D)E++;
        for(x=lo;x%D==0;x/=D)E--;
        if(e&&E)sol++;
    }
    printf("%d",sol);
    return 0;
}