Cod sursa(job #638119)

Utilizator alexdmotocMotoc Alexandru alexdmotoc Data 20 noiembrie 2011 18:59:55
Problema Zombie Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.76 kb
#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

#define maxN 1000005

long long chak = 0 , D , x[maxN] , s[maxN];
int N , K , cont = 0;

int main ()
{
	freopen ("zombie.in" , "r" , stdin);
	freopen ("zombie.out" , "w" , stdout);
	
	scanf ("%lld %d %d" , &D , &N , &K);
	
	for (int i = 1 ; i <= N ; ++i)
	{
		scanf ("%lld" , &x[i]);
		
		s[i] = s[i - 1] + x[i] - x[i - 1];
		
		if (s[i] >= D)
			s[i] -= x[i - 1];
	}
		
	for (int i = 1 ; i < N ; ++i)
	{
		if (s[i] < s[i + 1])
			++cont;
		
		else
		{
			if (cont <= K)
				chak += cont;
			
			else chak += K;
			
			cont = 0;
		}
	}
	
	if (cont == N - 1)
		chak += cont + 1;
	
	else 
		chak += cont;
	
	printf ("%lld" , chak);
	
	return 0;
}