All pastes #717232 Raw Edit

Unnamed

public text v1 · immutable
#717232 ·published 2007-09-27 14:06 UTC
rendered paste body
#include <stdio.h>

int n, l, u, v[100000], mintrocas, ntrocas, narms, temp;

int compareints(const void *a, const void *b) {
	return (*(int*)a - *(int*)b);
}

int isavaiable(int a) {
	int *p;
	p = (int*)bsearch(&a,v,l,sizeof(int),compareints);
	if (p == NULL) return 0;
	return 1;
}	
	
int main() {

	int i, j;

	while (scanf("%d%d", &n, &l)!=EOF&&!(n==0&&l==0)) {
		for (i=0; i<l; i++) {
			scanf("%d", &v[i]);
		}
		ntrocas = 0;
		narms = 1;
		for (i=1; i<l; i++) {
			/* 1 3 4 5 6 8 */
			temp = v[i] - v[i-1] - 1;
			ntrocas+= temp;
			narms+= temp;
			narms++;
			if (narms >= n) {
				break;
			}
		}
		mintrocas = ntrocas;
		u = ntrocas;
		for (i=1; i<l; i++) {
			temp = u - (v[i] - v[i-1] - 1);
			if (!isavaiable(v[i]+n-1)) {
				++temp;
			}
			ntrocas = temp;
			if (ntrocas < mintrocas) {
				mintrocas = ntrocas;
			}
			u = ntrocas;
		}
		printf("%d\n", mintrocas);
	}
	
	return 0;
}