Cod sursa(job #2694082)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 7 ianuarie 2021 23:28:50
Problema Pascal Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <bits/stdc++.h>

using namespace std;

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

vector <int> v, fr(2);

int descompune(int n, vector <int> &fr, int aux){
    for (int i = 0; i < v.size(); ++i){
        int x = v[i];
        while (x <= n){
            fr[i] += (n / x) * aux;
            x = x * x;
        }
    }
}

int main(){
    int r, d, ans = 0;
    fin >> r >> d;
    if (d == 4) v = {2, 2};
    else if (d == 6) v = {2, 3};
    else v = {d};
    descompune(r, fr, 1);
    for (int j = 0; j <= r; ++j){
        vector <int> fr2(2), fr3(2);
        descompune(j, fr2, -1);
        descompune(r - j, fr3, -1);
        if (v.size() == 2){
            if (fr[0] + fr2[0] + fr3[0] > 0 && fr[1] + fr2[1] + fr3[1] > 0){
                ++ans;
            }
        }
        else{
            if (fr[0] + fr2[0] + fr3[0] > 0){
                ++ans;
            }
        }
    }
    fout << ans;
    fin.close();
    fout.close();
    return 0;
}