Cod sursa(job #800198)

Utilizator gabriela95Andreea Gabriela gabriela95 Data 20 octombrie 2012 21:35:16
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int i,n,maxim,umaxim,pi,v[400001],s[400001],u[200001],p,t;
int main()
{
	f>>n;
	for(i=1;i<=n;i++)
	f>>v[i]>>u[i];
	for(i=1;i<=n;i++)
		if(u[i]==0)
			v[i]=-v[i];
	s[1]=v[1];
	maxim=s[1];
	umaxim=pi=1;
	for(i=2;i<=n;i++)
	{
		if(s[i-1]+v[i]>=v[i])
			s[i]=s[i-1]+v[i];
		else {
			s[i]=v[i];
			pi = i;
			}
	}p=1;
	for(i=n+1;i<=n+pi-1;i++)
		{
			v[i]=v[p];
			p++;}
	for(i=n+1;i<=n+pi-1;i++)
	{
		if(s[i-1]+v[i]>=v[i])
			s[i]=s[i-1]+v[i];
		else {
			s[i]=v[i];
			t=i;
			}
	}
	
	for(i=1;i<=n+pi-1;i++)
	{
		if(s[i]>maxim){
		maxim=s[i];
		umaxim=i;
		}
	}
	if(t==0);
	t=pi;
	g<<maxim<<" "<<t<<" "<<umaxim-t+1;;
	return 0;
}