Cod sursa(job #2914377)

Utilizator euyoTukanul euyo Data 19 iulie 2022 19:20:38
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
 
using namespace std;
 
ifstream fin( "pascal.in" );
ofstream fout( "pascal.out" );
 
const int DIM = 5e6 + 5; 
 
int v2[DIM], v3[DIM], v5[DIM];
 
int main() {
  int n, p;
 
  fin >> n >> p;
  for ( int i = 2; i <= n; ++i ) {
	v2[i] = (i % 2 ? 0 : v2[i / 2] + 1);
    v3[i] = (i % 3 ? 0 : v3[i / 3] + 1);
	v5[i] = (i % 5 ? 0 : v5[i / 5] + 1);
  }
  int res = 0, q2 = 0, q3 = 0, q5 = 0;
  for ( int j = 1; j < n; ++j ) {
    q2 += v2[n - j + 1] - v2[j];
	q3 += v3[n - j + 1] - v3[j];
	q5 += v5[n - j + 1] - v5[j];
	res += ( (p == 2 && q2) ||
			 (p == 3 && q3) ||
			 (p == 4 && q2 > 1) ||
			 (p == 5 && q5) ||
		     (p == 6 && q2 && q3) );
  }
  fout << res;
  fin.close();
  fout.close();
  return 0;
}