Cod sursa(job #426097)

Utilizator marian77ivan marian liviu marian77 Data 26 martie 2010 13:57:27
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>
int max,p,l,n,i,v[400001],poz[400001],x,nr;
int main() {
	FILE *f=fopen("buline.in","r");
	FILE *g=fopen("buline.out","w");
	fscanf(f,"%d",&n);
	for(i=1;i<=n;i++) {
		fscanf(f,"%d%d",&v[i],&x);
		if(x==0)
			v[i]=-v[i];
	}
	for(i=1;i<=n-1;i++) {
		v[n+i]=v[i];
	}
	for(i=1;i<=2*n-1;i++) {
		if(v[i]<v[i]+v[i-1]) {
			v[i]=v[i]+v[i-1];
			poz[i]=poz[i-1];
			nr++;
			if(nr==n)
				break;
		}
		else
			poz[i]=i;
	}
	for(i=1;i<=2*n;i++)
		if(v[i]>max) {
			max=v[i];
			p=poz[i];
			l=i-p+1;
		}
	fprintf(g,"%d %d %d",max,p,l);
	return 0;
}