Cod sursa(job #2910604)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 22 iunie 2022 17:45:30
Problema Pascal Scor 10
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.54 kb
#include <fstream>
using namespace std;
ifstream fin ("pascal.in");
ofstream fout ("pascal.out");
int p,di,x,d,nr,k,g,q,nrr,i,j,fr[10],ff[10];
int main()
{
    fin>>p>>di;
    i=p;
    j=p/2;
    for (g=0; g<=j; g++)
    {
        if (i-g<g)
        {
            nr=g+1;
            nrr=i-g;
        }
        else
        {
            nr=i-g+1;
            nrr=g;
        }
        for (q=2; q<=nrr; q++)
        {
            x=q;
            for (d=2; d<=5; d++)
            {
                while (x%d==0)
                {
                    fr[d]++;
                    x=x/d;
                }
            }
        }
        for (q=nr; q<=i; q++)
        {
            x=q;
            for (d=2; d<=5; d++)
            {
                while (x%d==0)
                {
                    if (fr[d]>0)
                        fr[d]--;
                    else
                        ff[d]++;
                    x=x/d;
                }
            }
        }
        if (di==2)
        {
            if (ff[2]>0)
                k=k+2;
        }
        if (di==3)
        {
            if (ff[3]>0)
                k=k+2;
        }
        if (di==4)
        {
            if (ff[2]>1)
                k=k+2;
        }
        if (di==5)
        {
            if (ff[5]>5)
                k=k+2;
        }
        if (di==6)
        {
            if (ff[2]>0&&ff[3]>0)
                k=k+2;
        }
        if (i%2==0&&g==j&&k>0)
            k--;
    }
    fout<<k;
    return 0;
}