Pagini recente » Rezultatele filtrării | Cod sursa (job #1591331) | Istoria paginii home | Rezultatele filtrării | Cod sursa (job #635740)
Cod sursa(job #635740)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
#define nmax 1000010
long long d[nmax];
int x, n, k, v[nmax];
string s;
int main()
{
ifstream fin("zombie.in");
ofstream fout("zombie.out");
int i, p;
getline(fin, s);
for (p=0, i=1; i<=3; p++)
{
if (s[p]>='0' && s[p]<='9')
v[i]=v[i]*10+s[p]-'0'; else i++;
}
x=v[1];
n=v[2];
k=v[3];
v[1]=v[2]=v[3]=0;
getline(fin, s);
for (p=0, i=1; i<=n; p++)
{
if (s[p]>='0' && s[p]<='9')
v[i]=v[i]*10+s[p]-'0'; else i++;
}
std::string().swap(s);
p=1;
for (i=1; i<=n; i++)
{
while (v[i]-v[p]>x && p<=i) p++;
d[i]=d[i-1]+1;
if (d[p-1]+k<d[i]) d[i]=d[p-1]+k;
}
fout<<d[n];
}