Cod sursa(job #1849910)

Utilizator DjokValeriu Motroi Djok Data 17 ianuarie 2017 22:46:42
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;

int i, n, d, rs, nr[5000005], nr2[5000005];

int main()
{
  ifstream cin("pascal.in");
  ofstream cout("pascal.out");
  ios_base::sync_with_stdio(0);

  cin >> n >> d;

  if(d != 4 && d != 6) {
    for(i = d; i <= n; ++i) nr[i] = nr[i / d] + i / d;
                            
    for(i = 1; i <= n; ++i)
      if(nr[n] - nr[i] - nr[n - i] > 0) ++rs;

    return cout << rs << '\n', 0;
  }

  for(i = 2; i <= n; ++i) {
    nr[i] = nr[i / 2] + i / 2;
    nr2[i] = nr2[i / 3] + i /3;
  }

  for(i = 1; i <= n; ++i)
    if(d == 4) {
      if(nr[n] - nr[i] - nr[n - i] > 1) ++rs;
    } else {
      if(nr[n] - nr[i] - nr[n - i] > 0 && nr2[n] - nr2[i] - nr2[n - i] > 0) ++rs;
    }

  cout << rs << '\n';

  return 0;
}