Cod sursa(job #2796840)
Utilizator | lucainfoarena Luca_Miscoci | Data | 8 noiembrie 2021 21:11:25 |
---|---|---|---|
Problema | Zombie | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <fstream>
#define NMAX 1000000
using namespace std;
int v[NMAX + 1], dp[NMAX + 1], poz[NMAX + 1];
int main(){
ifstream fin ("zombie.in");
ofstream fout ("zombie.out");
int d, n, k, p;
fin >> d >> n >> k;
for (int i = 0; i < n; i++)
fin >> v[i];
p = 1;
for (int i = 0; i < n; i++){
while (v[p] < v[i] - d){
p ++;
}
poz[i] = p;
}
dp[0] = 1;
for (int i = 1; i < n; i++)
dp[i] = min (dp[i - 1] + 1, dp[poz[i] - 1] + k);
fout << dp[n - 1];
return 0;
}