Cod sursa(job #1830054)

Utilizator c0mradec0mrade c0mrade Data 16 decembrie 2016 01:10:53
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "pascal.in"  );
ofstream fout( "pascal.out" );

const int DIM = 5e6 + 9;
int v[3], n, p, ans;
int d1[DIM], d2[DIM], d3[DIM];

int main() {
    fin >> n >> p;

    for(int i=1; i<=n; ++i) {
        if(i%2 == 0) d1[i] = d1[i/2] + 1;
        if(i%3 == 0) d2[i] = d2[i/3] + 1;
        if(i%5 == 0) d3[i] = d3[i/5] + 1;
    }

    for( int i=1; i<=n; ++i) {
        v[0] += d1[n - i + 1] - d1[i];
        v[1] += d2[n - i + 1] - d2[i];
        v[2] += d3[n - i + 1] - d3[i];

        if(p == 2 & v[0] > 0) {
            ++ ans;
        }
        if(p == 3 & v[1] > 0) {
            ++ ans;
        }
        if(p == 4 & v[0] > 1) {
            ++ ans;
        }
        if(p == 5 & v[2] > 0) {
            ++ ans;
        }
        if(p == 6 & v[0] > 0 & v[1] > 0) {
            ++ ans;
        }
    }

    fout << ans;

    return 0;
}