Cod sursa(job #2502917)

Utilizator radugnnGone Radu Mihnea radugnn Data 1 decembrie 2019 20:40:08
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("pascal.in");
ofstream fout ("pascal.out");
int f[3][5000010];
int r,d,i,p2,p3,p5,sol;
void precalculare(){
    for(int i=2;i<=r;i++){
        if(i%2==0)
            f[0][i]=f[0][i/2]+1;
        if(i%3==0)
            f[1][i]=f[1][i/3]+1;
        if(i%5==0)
            f[2][i]=f[2][i/5]+1;
    }
}
int main(){
    fin>>r>>d;
    precalculare();
    if(d==2){
        for(i=1;i<=r;i++){
            p2+=f[0][r-i+1]-f[0][i];
            if (p2)
                sol++;
        }
    }
    else if(d==3){
        for(i=1;i<=r;i++){
            p3+=f[1][r-i+1]-f[1][i];
            if (p3)
                sol++;
        }
    }
    else if(d==4){
        for(i=1;i<=r;i++){
            p2+=f[0][r-i+1]-f[0][i];
            if (p2>=2)
                sol++;
        }
    }
    else if(d==5){
        for(i=1;i<=r;i++){
            p5+=f[2][r-i+1]-f[2][i];
            if (p5)
                sol++;
        }
    }
    else if(d==6){
        for(i=1;i<=r;i++){
            p2+=f[0][r-i+1]-f[0][i];
            p3+=f[1][r-i+1]-f[1][i];
            if (p2 && p3)
                sol++;
        }
    }
    fout<<sol;
    return 0;
}