Cod sursa(job #3260303)

Utilizator vicvicGriga Victor-Cristian vicvic Data 1 decembrie 2024 15:12:15
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("pascal.in");
ofstream g ("pascal.out");
int n, k, divi[312], exp[5000005][3];
int main()
{
    f >> n >> k;
    while (k%2==0)
    {
        k/=2;
        divi[0]++;
    }
    while (k%3==0)
    {
        k/=3;
        divi[1]++;
    }
    while (k%5==0)
    {
        k/=5;
        divi[2]++;
    }
    for (int i=1;i<=n;i++)
    {
        if (i%2==0)
        {
            exp[i][0]=exp[i/2][0]+1;
        }
        if (i%3==0)
        {
            exp[i][1]=exp[i/3][1]+1;
        }
        if (i%5==0)
        {
            exp[i][2]=exp[i/5][2]+1;
        }
    }
    for (int k=0;k<=2;k++)
    {
        for (int i=1;i<=n;i++)
        {
            exp[i][k]+=exp[i-1][k];
        }
    }
    int cnt=0;
    for (int i=0;i<=n;i++)
    {
        int e1=exp[n][0]-exp[i][0]-exp[n-i][0];
        int e2=exp[n][1]-exp[i][1]-exp[n-i][1];
        int e3=exp[n][2]-exp[i][2]-exp[n-i][2];
        if (e1>=divi[0] && e2>=divi[1] && e3>=divi[2])
        {
            cnt++;
        }
    }
    g << cnt;
    return 0;
}