Cod sursa(job #2914376)

Utilizator euyoTukanul euyo Data 19 iulie 2022 19:19:43
Problema Pascal Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

using namespace std;

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

const int DIM = 5e6 + 1; // lmao

int v2[DIM], v3[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);
  }
  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];
	int aaa = n - j + 1, bbb = j;
	while ( aaa % 5 == 0 ) { 
	  aaa /= 5;
	  ++q5;
	}
	while ( bbb % 5 == 0 ) {
	  bbb /= 5;
	  --q5;
	}
	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;
}