Cod sursa(job #661525)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 14 ianuarie 2012 17:12:53
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<iostream>
#include<fstream>
using namespace std;
int v[400001],start,l,n;
void subsecventa(int &max) 
{
	int s,c,i;
	max=-2000000000;
	c=1;
	s=0;
	for(i=1;i<=n*2-1;i++) {
		if(s<0) {
			if(i>n)
				return;
			s=v[i];
			c=i;
		}
		else s=s+v[i];
		if((i>n)&&((c+n)==i))
			return;
		if(s>max) {
			max=s;
			start=c;
			l=i-start+1;
		}
	}
}
int main ()
{
	int i,x,y,max;
	ifstream f("buline.in");
	ofstream g("buline.out");
	f>>n;
	for(i=1;i<=n;i++) {
		f>>x>>y;
		if(y==0)
			x=x*(-1);
		v[i]=x;
	}
	f.close();
	for( ;i<=n*2-1;i++) 
		v[i]=v[i-n];
	subsecventa(max);
	g<<max<<" "<<start<<" "<<l;
	g.close();
	return 0;
}