Cod sursa(job #638260)

Utilizator Catah15Catalin Haidau Catah15 Data 20 noiembrie 2011 19:54:18
Problema Zombie Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.91 kb
#include <fstream>
#include <iostream>

using namespace std;

#define maxN 1000005

long long A[maxN], D, sol;


int main()
{
	ifstream f("zombie.in");
	ofstream g("zombie.out");
	
	long long N, K;
	
	f >> D >> N >> K;

	long long start = 0;
	long long res = 0;
	long long S = 0;
	
	for (long long i = 1; i <= N; ++ i)
	{
		long long c;
		
		f >> c;
		
		A[i] =  c;
		
		S = c - res;
		
		if (S - res >= D)
		{
			long long poz = i - 1;
			if (poz - start > K)
			{
				sol += K;
				start = poz;
				res = A[poz + 1];
			}
			else
			{
				sol += poz - start;
				start = poz;
				res = A[poz + 1];
			}
		}
		
		//cout << i << " " << sol << " " << start << " " << res <<  " " << A[i] << '\n';
	}
	
	if (start != N)
	{
		if (N - start > K)
		{
			sol += K;
			start = N;
		}
		else
		{
			sol += N - start;
			start = N;
		}
	}
	
	g << sol;
	
	return 0;
}