Cod sursa(job #425825)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 26 martie 2010 10:12:44
Problema Buline Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>
#define DIM 100001
#define INF 2000000001

FILE *f1 = fopen("buline.in","r");
FILE *f2 = fopen("buline.out","w");

int v[DIM];

int n;
int i,semn;
int p,L;
int smin,smax,stot,s;
int pmin,Lmin,pmax,Lmax;

int main(){
	
	fscanf(f1,"%d",&n);
	
	for(i=1, s=INF, smin=INF; i<=n; i++){
		fscanf(f1,"%d %d",&v[i],&semn);
		if(!semn)
			v[i] = -v[i];
		
		stot += v[i];
		
		if(v[i] + s < v[i])
			s += v[i], L++;
		else
			s = v[i], L = 1, p = i;
		
		if(smin > s)
			smin = s, Lmin = L,	pmin = p;		
	}
	
	for(i=1, s=-INF, smax=-INF; i<=n; i++){
		if(v[i] + s > v[i])
			s += v[i], L++;
		else
			s = v[i], L = 1, p = i;
		
		if(smax < s)
			smax = s, Lmax = L, pmax = p;		
	}
	
	if(smax>stot-smin)
		fprintf(f2,"%d %d %d",smax,pmax,Lmax);
	else
		fprintf(f2,"%d %d %d",stot-smin,pmin+Lmin,n-Lmin);
	
	fclose(f1);
	fclose(f2);
	
	return 0;
}