Cod sursa(job #635740)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 19 noiembrie 2011 14:38:51
Problema Zombie Scor 100
Compilator cpp Status done
Runda .com 2011 Marime 0.7 kb
#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];
}