Cod sursa(job #2217865)

Utilizator lucametehauDart Monkey lucametehau Data 2 iulie 2018 14:26:38
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

using namespace std;

ifstream cin ("pascal.in");
ofstream cout ("pascal.out");

const int NMAX = 5e6;

int n, k;
int sol;

int f[6][1 + NMAX];
int cnt[6], tmp[6];

int main() {
  cin >> n >> k;
  for(int i = 1; i <= n; i++) {
    if(i % 2 == 0)
      f[2][i] = f[2][i / 2] + 1;
    if(i % 3 == 0)
      f[3][i] = f[3][i / 3] + 1;
    if(i % 5 == 0)
      f[5][i] = f[5][i / 5] + 1;
  }
  if(k % 2 == 0)
    cnt[2]++;
  if(k % 3 == 0)
    cnt[3]++;
  if(k == 4)
    cnt[2]++;
  if(k == 5)
    cnt[5]++;
  for(int i = 1; i <= n; i++) {
    tmp[2] += f[2][n - i + 1] - f[2][i];
    tmp[3] += f[3][n - i + 1] - f[3][i];
    tmp[5] += f[5][n - i + 1] - f[5][i];
    if(tmp[2] >= cnt[2] && tmp[3] >= cnt[3] && tmp[5] >= cnt[5])
      sol++;
  }
  cout << sol;
  return 0;
}