Cod sursa(job #2773500)

Utilizator YusyBossFares Yusuf YusyBoss Data 7 septembrie 2021 12:04:08
Problema Zombie Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#define NMAX 1000000

using namespace std;

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

int v[NMAX + 1], vcst[NMAX + 1], dp[NMAX + 1];

int main() {
  int d, n, k, i, st, dr, sol, nr1, nr2;
  cin >> d >> n >> k;

  for (i = 0; i < n; i++)
    cin >> v[i];

  st = dr = sol = 0;
  while (dr < n) {
    if (v[dr] <= v[st] + d)
      dr++;
    else
      st++;
    vcst[dr] = st;
  }

  dp[0] = 1;
  for (i = 1; i < n; i++) {
    nr1 = dp[i - 1] + 1;
    nr2 = dp[vcst[i] - 1] + k;
    if (nr1 < nr2)
      dp[i] = nr1;
    else
      dp[i] = nr2;
  }

  cout << dp[n - 1];
  return 0;
}