Cod sursa(job #638036)

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

using namespace std;

#define maxN 1000005

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

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