Cod sursa(job #2910742)

Utilizator rares89_Dumitriu Rares rares89_ Data 24 iunie 2022 20:48:36
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.08 kb
#include <fstream>

using namespace std;

ifstream fin("pascal.in");
ofstream fout("pascal.out");

int r, d, d2[5000005], d3[5000005], d5[5000005], ans;

int main() {
    fin >> r >> d;
    fin.close();
    for(int i = 2; i <= r; i += 2) {
        d2[i] = d2[i / 2] + 1;
    }
    for(int i = 3; i <= r; i += 3) {
        d3[i] = d3[i / 3] + 1;
    }
    for(int i = 5; i <= r; i += 5) {
        d5[i] = d5[i / 5] + 1;
    }
    for(int i = 2; i <= r; i++) {
        d2[i] += d2[i - 1];
        d3[i] += d3[i - 1];
        d5[i] += d5[i - 1];
    }
    for(int i = 0; i <= r; i++) {
        int nr2 = d2[r] - d2[r - i] - d2[i];
        int nr3 = d3[r] - d3[r - i] - d3[i];
        int nr5 = d5[r] - d5[r - i] - d5[i];
        if(d == 2 && nr2 > 0) {
            ans++;
        } else if(d == 3 && nr3 > 0) {
            ans++;
        } else if(d == 4 && nr2 >= 2) {
            ans++;
        } else if(d == 5 && nr5 > 0) {
            ans++;
        } else if(d == 6 && nr2 > 0 && nr3 > 0) {
            ans++;
        }
    }
    fout << ans;
    return 0;
}