Cod sursa(job #2910893)

Utilizator divadddDavid Curca divaddd Data 25 iunie 2022 16:31:26
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.07 kb
#include <iostream>
#include <fstream>
#define MAX 5000002
using namespace std;
int r,n,d[MAX],t[MAX],c[MAX];

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

int main()
{
    /// legendre merge greu rau
    fin >> r >> n;
    for(int i = 2; i <= r; i += 2){
        d[i] = 1+d[i/2];
    }
    for(int i = 3; i <= r; i += 3){
        t[i] = 1+t[i/3];
    }
    for(int i = 5; i <= r; i += 5){
        c[i] = 1+c[i/5];
    }
    for(int i = 2; i <= r; i++){
        d[i] += d[i-1];
        t[i] += t[i-1];
        c[i] += c[i-1];
    }
    int ans = 0;
    for(int i = 0; i <= r; i++){
        int doi = d[r]-d[i]-d[r-i];
        int trei = t[r]-t[i]-t[r-i];
        int cinci = c[r]-c[i]-c[r-i];
        if(n == 2 && doi >= 1){
            ans++;
        }else if(n == 3 && trei >= 1){
            ans++;
        }else if(n == 5 && cinci >= 1){
            ans++;
        }else if(n == 4 && doi >= 2){
            ans++;
        }else if(n == 6 && doi >= 1 && trei >= 1){
            ans++;
        }
    }
    fout << ans;
    return 0;
}