Cod sursa(job #132211)

Utilizator swift90Ionut Bogdanescu swift90 Data 5 februarie 2008 13:10:51
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#define maxn 400100
int nr[maxn];
int main(){
	freopen("buline.in","r",stdin);
	freopen("buline.out","w",stdout);
	int n,i,aux,pmin,pmax,p,u,max,s;
	scanf("%d",&n);
	
	for(i=0;i<n;++i){
		scanf("%d%d",&nr[i],&aux);
		if(aux==0)
			nr[i]=nr[i]*(-1);
	}
	for(i=n;i<2*n-1;++i)
		nr[i]=nr[i-n];
	s=0;
	p=u=0;
	max=-1000000;
	for(i=0;i<2*n-2;++i){
		s+=nr[i];
		++u;
		if(max<s){
			max=s;
			pmin=p;
			pmax=u;
		}
		if(s<0){
			s=0;
			p=i+1;
			u=i+1;
		}
	}
	
	printf("%d %d %d\n",max,pmin+1,pmax-pmin);
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}