Pagini recente » Cod sursa (job #2292600) | Cod sursa (job #1044715) | Cod sursa (job #2868487) | Cod sursa (job #2174009) | Cod sursa (job #638128)
Cod sursa(job #638128)
#include <fstream>
#include <iostream>
using namespace std;
#define maxN 100005
int A[maxN], minim[maxN], D;
int bin_Search (int x)
{
int st = 1, dr = x, mid;
if (x - D - 1 >= 1) st = x - D - 1;
int sol = maxN;
while (st <= dr)
{
mid = (st + dr) / 2;
if (A[x] - A[mid] > D) st = mid + 1;
else
{
sol = min (sol, mid);
dr = mid - 1;
}
}
return sol;
}
int main()
{
ifstream f("zombie.in");
ofstream g("zombie.out");
int N, K;
f >> D >> N >> K;
-- D;
for (int i = 1; i <= N; ++ i)
{
f >> A[i];
int j = bin_Search (i);
minim[i] = min (minim[i - 1] + 1, minim[j - 1] + K);
}
g << minim[N];
return 0;
}