Cod sursa(job #2910823)

Utilizator MrPuzzleDespa Fabian Stefan MrPuzzle Data 25 iunie 2022 12:35:17
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.12 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <climits>

#define MAX 5000005


using namespace std;


//ifstream f("in.in");
//ofstream g("out.out");

ifstream f("pascal.in");
ofstream g("pascal.out");

int n,dd,d[MAX],t[MAX],c[MAX],sol=0;

int main(){

    f>>n>>dd;

    for(int i=2;i<=n;i+=2){
        d[i] = 1 + d[i/2];
    }
    for(int i=3;i<=n;i+=3){
        t[i] = 1 + t[i/3];
    }
    for(int i=5;i<=n;i+=5){
        c[i] = 1 + c[i/5];
    }
    for(int i=2;i<=n;i++){
        d[i]+=d[i-1];
        t[i]+=t[i-1];
        c[i]+=c[i-1];
    }

    for(int j=0;j<=n;j++){
        int aux1 = d[n] - d[j] - d[n-j];
        int aux2 = t[n] - t[j] - t[n-j];
        int aux3 = c[n] - c[j] - c[n-j];
        if(dd==2&&aux1>=1){
            sol++;
        }else if(dd==3&&aux2>=1){
            sol++;
        }else if(dd==5&&aux3>=1){
            sol++;
        }else if(dd==4&&aux1>=2){
            sol++;
        }else if(dd==6&&aux1>=1&&aux2>=1){
            sol++;
        }
    }

    g<<sol;

    f.close();
    g.close();
    return 0;
}