Cod sursa(job #1347574)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 19 februarie 2015 00:50:15
Problema Pascal Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
int n,d;
int p[5],q[5],nr,sol;
int r[5];

void putd();
void add(int k,int o)
{
    int i;
    for (i=1;i<=nr;i++)
        while (k%p[i]==0) {
            r[i]+=o;
            k/=p[i];
        }
}
void test()
{
    for (int i=1;i<=nr;i++)
        if (r[i]<q[i])
            return;
    sol++;
}

int main()
{
    int i,j;
    f>>n>>d;
    putd();
    for (i=0;i<n;i++) {
        test();
        add(n-i,1);
        add(i+1,-1);
    }
    test();
    g<<sol;
    return 0;
}


void putd()
{
    if (d==4) {
        p[++nr]=2;
        q[nr]=2;
    }
    else
    if (d==6) {
        p[++nr]=2;
        q[nr]=1;
        p[++nr]=3;
        q[nr]=1;

    }
    else {
        p[++nr]=d;
        q[nr]=1;
    }

}