Cod sursa(job #638277)

Utilizator Catah15Catalin Haidau Catah15 Data 20 noiembrie 2011 20:00:09
Problema Zombie Scor 30
Compilator cpp Status done
Runda .com 2011 Marime 0.87 kb
#include <fstream>
#include <iostream>

using namespace std;

#define maxN 1000005

int A[maxN], D, sol;


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

	int start = 0;
	int res = 0;
	int S = 0;
	
	for (int i = 1; i <= N; ++ i)
	{
		int c;
		
		f >> c;
		
		A[i] =  c;
		
		S = c - res;
		
		if (S - res > D)
		{
			int poz = i - 1;
			if (poz - start > K)
			{
				sol += K;
				start = poz;
				res = A[poz + 1] - 1;
			}
			else
			{
				sol += poz - start;
				start = poz;
				res = A[poz + 1] - 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;
}