Pagini recente » Cod sursa (job #477917) | Cod sursa (job #2876211) | Cod sursa (job #722206) | Cod sursa (job #784151) | Cod sursa (job #1459934)
#include <fstream>
#define dim 1000001
using namespace std;
ifstream fin("zombie.in");
ofstream fout("zombie.out");
int dp[dim],dist[dim],D,N,K,INF,i,sol;
int Search(int val)
{
int st=1;
int dr=i;
int mijl;
while(st<=dr)
{
mijl=st+(dr-st)/2;
if(dist[mijl]<=val)
{
dr=mijl-1;
sol=mijl;
}
else
st=mijl+1;
}
return (sol-1);
}
int main()
{
fin>>D>>N>>K;
INF = 1 << 30;
for(i=1;i<=N;i++)
{
fin>>dist[i];
dp[i]=INF;
}
for(i=1;i<=N;i++)
dp[i]=min(dp[i-1]+1,dp[Search(dist[i]-D+1)]+K);
fout<<dp[N];
return 0;
}