Cod sursa(job #637966)

Utilizator alexdmotocMotoc Alexandru alexdmotoc Data 20 noiembrie 2011 17:49:55
Problema Zombie Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.79 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);
	
	for (int i = 1 ; i <= N ; ++i)
		scanf ("%lld" , &x[i]);
	
	int aux;
	
	for (int i = 1 ; i <= N ; ++i)
	{
		sum += abs (x[i] - x[i + 1]);
		
		if (sum < D)
		{
			aux = i;
			
			while (sum <= D && i <= N)
			{
				++i;
				sum += abs (x[i] - x[i + 1]);
			}
			
			sum -= x[i + 1];
			--i;
			
			if (i - aux + 1 > K)
				chak += K;
			
			else chak += i - aux + 1;
		}
		
		else 
		{
			sum = 0;
			++chak;
		}
		
	}
	
	printf ("%lld" , chak);
	
	return 0;
}