Cod sursa(job #555661)

Utilizator valentin.harsanValentin Harsan valentin.harsan Data 15 martie 2011 17:49:40
Problema Pod Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#define N 100001

int pas,a,s,n,p,l,x[N];
bool y[N];
int ver(int q,int w);
int main() {
	int i;
	freopen("pod.in","r",stdin);
	freopen("pod.out","w",stdout);
	scanf("%d%d%d",&l,&p,&n);
	for(i=1;i<=n;++i) {
		scanf("%d",&x[i]);
	}
	pas=1<<23;
	for(i=0;pas>0;pas>>=1) {
		while(i+pas<=l && ver(i+pas,0)>=p) {
			i+=pas;
		}
	}
	pas=ver(i,1);
	return 0;
}
int ver(int q,int w) {
	int i,s1=q,s2=0;
	for(i=1;i<=n;++i) {
		s1+=x[i]-x[i-1];
		if(s1>=q) {
			if (w==1) y[i]=true;
			s1=0;
			++s2;
		}
	}
	if(w==1) {
		for(i=1;i<=n;++i)
			if(y[i]==true) 
				printf("1");
			else
				printf("0");
		return 0;
	}
	else {
		return s2;
	}
}