Cod sursa(job #637924)

Utilizator mathboyDragos-Alin Rotaru mathboy Data 20 noiembrie 2011 17:35:46
Problema Zombie Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.55 kb
#include <cstdio>
#include <cstring>
#include <string>

#define MAXN 1000010
using namespace std;

long long sol;
int D, N, K, A[MAXN], deq[MAXN];
int main() {

	freopen("zombie.in", "r", stdin);
	freopen("zombie.out", "w", stdout);


	scanf("%d %d %d\n", &D, &N, &K);


	for(int i = 1; i <= N; i++)
		scanf("%d", &A[i]);
	int p, u;
	p = u = 0;
	deq[p] = 1;
	
	for(int i = 2; i <= N; i++) {
		int s = 0;
		while(A[i] - A[deq[p]] > D && p <= u)
			++p, ++s;
		deq[++u] = i;
		sol += min(s, K);
	}
	
	sol += min((u - p + 1), K);
	printf("%lld\n", sol);
	return 0;
}