Cod sursa(job #950911)

Utilizator BLz0rDospra Cristian BLz0r Data 18 mai 2013 17:58:40
Problema Buline Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
using namespace std;

FILE *f=fopen ("buline.in","r");
FILE *g=fopen ("buline.out","w");

int v[400001];
int main(){
	int n,x,y,i,j,q,s,max=-99999999,lg=0,poz;
	
	fscanf (f,"%d",&n);	
	for (i=1;i<=n;++i){
		fscanf (f,"%d%d",&x,&y);
		if (y==0){
			v[i]=v[i+n]=-x;
		}
		else{
			v[i]=v[i+n]=x;
		}
	}
	
	for (i=1;i<=n;++i){
		s=0;
		for (j=i,q=1;q<=n;++q,++j){
			s+=v[j];
			if (s>max){
				max=s;
				lg=q;
				poz=i;
			}
			else{
				if(s==max){
					if(q<lg){
						lg=q;
						poz=i;
					}
				}
			}
		}
	}
	
	fprintf (g,"%d %d %d",max,poz,lg);
	return 0;
}