Cod sursa(job #637933)

Utilizator mathboyDragos-Alin Rotaru mathboy Data 20 noiembrie 2011 17:38:12
Problema Zombie Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.64 kb
#include <cstdio>
#include <fstream>

#define MAXN 1000010
using namespace std;

long long sol;
int D, N, K, A[MAXN], deq[MAXN];
inline int min(int a, int b) {
	if(a < b) return a;
	return b;
}
int main() {

//	freopen("zombie.in", "r", stdin);
//	freopen("zombie.out", "w", stdout);
	ifstream fin("zombie.in");
	ofstream fout("zombie.out");

	fin >> D >> N >> K;

	for(int i = 1; i <= N; i++)
		fin >> 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);
	fout << sol << "\n";
	return 0;
}