Cod sursa(job #3155143)

Utilizator DavidAA007Apostol David DavidAA007 Data 7 octombrie 2023 14:13:33
Problema Pascal Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.81 kb
#include<bits/stdc++.h>
//#define inf 0x3f3f3f3f
#define int long long
#define bit(x,i)(((x)>>(i))&1)
#define FAST ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
const int mod=100003;
//typedef long long ll;
//const long long int mare=1LL*1000000000000000000;
const int mare=2e9+5;
const int nmax=5e6+5;
const int dx[4] = { 0,0,1,1 };
const int dy[4] = { 0,1,0,1 };
int T,n,d,vmax,i,j,l,m,c;
int suma,maxx,minn,numar,x,y,dim,tip,contor;
int v[nmax][3],aux[3]={2,3,5},ans,ok;
signed main() {
    FAST
    fin >> n>>d;
    //j=0 -> 2
    //j=1 -> 3
    //j=2 -> 5
    for(j=0;j<=2;j++)
    {
        for(i=aux[j];i<=n;i=i+aux[j])
        {
            v[i][j]=v[i/aux[j]][j]+1;
        }
        for(i=aux[j];i<=n;i++)
            v[i][j]=v[i][j]+v[i-1][j];
    }
    for(i=0;i<=n;i++) {
        ok=1;
     //   for(j=0;j<=2;j++)
      //      cout<<v[n][j]<<" "<<v[n-i][j]<<" "<<v[i][j]<<"\n";
       // cout<<"\n\n";
        if (d == 2)
        {
            if (v[n][0] - v[n - i][0] - v[i][0]<1) {
                ok=0;
            }
        }
        if (d == 3)
        {
            if (v[n][1] - v[n - i][1] - v[i][1]<1) {
                ok=0;
            }
        }
        if (d == 4)
        {
            if (v[n][0] - v[n - i][0] - v[i][0]<2) {
                ok=0;
            }
        }
        if (d == 5)
        {
            if (v[n][2] - v[n - i][2] - v[i][2]<1) {
                ok=0;
            }
        }
        if (d == 6)
        {
            if (v[n][0] - v[n - i][0] - v[i][0]<1) {
                ok=0;
            }
            if (v[n][1] - v[n - i][1] - v[i][1]<1) {
                ok=0;
            }
        }
        if(ok==1)
            ans++;
    }
    fout<<ans;
    return 0;
}
/*
 *
5 2
2 2
5 3 4 8 9
 *
 */