Cod sursa(job #51619)

Utilizator swift90Ionut Bogdanescu swift90 Data 15 aprilie 2007 19:16:40
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
int nr[201];
int main(){
	freopen("buline.in","r",stdin);
	freopen("buline.out","w",stdout);
	int n,i,max,s,p,l,poz,lun;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d %d",&p,&l);
		if(l==1)
			nr[i]=p;
		else
			nr[i]=-1*p;
	}
	
	s=max=0;
	p=l=0;
	for(i=0;i<n;i++){
		if(s+nr[i]<nr[i]){
			s=nr[i];
			l=1;
			p=i;
		}
		else{
			s=s+nr[i];
			l++;
		}
		if(s>max){
			max=s;
			poz=p+1;
			lun=l;
		}
	}
	for(i=0;i<n-1;i++){
		if(s+nr[i]<nr[i]){
			s=nr[i];
			l=1;
			p=i;
		}
		else{
			s=s+nr[i];
			l++;
		}
		if((s>max)&&(l<=n)){
			max=s;
			poz=p+1;
			lun=l;
		}
	}
	
	printf("%d %d %d\n",max,poz,lun);
	
	return 0;
}