Cod sursa(job #535237)

Utilizator RobertBBadea Corneliu Robert RobertB Data 16 februarie 2011 21:48:07
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <iostream>
#include <fstream>
using namespace std;



int main()
{
	ifstream citire("buline.in");
	ofstream scriere("buline.out");
	int N,i,semn,Suma_maxima=0,Suma_curenta,x,y,j;
	citire>>N;
	int buline[N];
	for(i=0;i<N;i++)
	{
		citire>>buline[i]>>semn;
		if(semn==0)
		{
			buline[i]=buline[i]*-1;
		}
		//cout<<buline[i]<<" ";
		Suma_maxima=Suma_maxima+buline[i];
	}
	//cout<<Suma_maxima;
	int t,t_min=N+1;
	int L,L_min=N+1;
	x=Suma_maxima;
	for(i=0;i<N;i++)
	{
		L=N;
		Suma_curenta=x-buline[i];
		if(Suma_maxima<Suma_curenta)
		{
			Suma_maxima=Suma_curenta;
			L--;
			if(L<L_min)
			{
				L_min=L;
				if(i+1<t_min)
				t_min=i+1;
			}
		}
		
		cout<<Suma_curenta<<" ";
		for(j=0;j<N-1;j++)
		{
			Suma_curenta=x;
			int z=i;
			for(y=0;y<j;y++)
			{
				Suma_curenta=Suma_curenta-buline[z];
				z++;
				if(z=N+1)
				{
					z=1;
				}
				
			}
			if(Suma_maxima<Suma_curenta)
			{
				Suma_maxima=Suma_curenta;
				L--;
				if(L<L_min)
				{
					L_min=L;
					if(i+1<t_min)
						t_min=i+1;
				}
			}
			for(y=0;y<j;y++)
			{
				Suma_curenta=Suma_curenta-buline[z];
				z--;
				if(z=0)
				{
					z=N;
				}
				
			}
			if(Suma_maxima<Suma_curenta)
			{
				Suma_maxima=Suma_curenta;
				L--;
				if(L<L_min)
				{
					L_min=L;
					if(i+1<t_min)
						t_min=i+1;
				}
			}
		}
	}
	scriere<<Suma_maxima<<" "<<t_min<<" "<<L_min;
}