Cod sursa(job #2911598)

Utilizator Gica-gicutaGeorge Gica-gicuta Data 30 iunie 2022 17:40:01
Problema Pascal Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>

using namespace std;
ifstream cin("pascal.in");
ofstream cout("pascal.out");
int mat[3][5000005];
int main()
{
    int n,d;
    cin>>n>>d;
    for(int i=1; i<=n; i++)
    {
        int ci=i,sum2=0,sum3=0,sum5=0;
        while(ci%2==0)
        {
            sum2++;
            ci/=2;
        }
        while(ci%3==0)
        {
            sum3++;
            ci/=3;
        }
        while(ci%5==0)
        {
            sum5++;
            ci/=5;
        }
        mat[0][i]=mat[0][i-1]+sum2;
        mat[1][i]=mat[1][i-1]+sum3;
        mat[2][i]=mat[2][i-1]+sum5;
    }
    int cnt=0,c2=0,c3=0,c5=0;
    while(d%2==0)
    {
        c2++;
        d/=2;
    }
    while(d%3==0)
    {
        c3++;
        d/=3;
    }
    while(d%5==0)
    {
        c5++;
        d/=5;
    }
    for(int i=1; i<=n; i++)
    {
        int a2=mat[0][n]-mat[0][i]-mat[0][n-i];
        int a3=mat[1][n]-mat[1][i]-mat[1][n-i];
        int a5=mat[2][n]-mat[2][i]-mat[2][n-i];
        if(a2>=c2&&a3>=c3&&a5>=c5)
            cnt++;
    }
    cout<<cnt;
    return 0;
}