Cod sursa(job #45606)

Utilizator webspiderDumitru Bogdan webspider Data 1 aprilie 2007 18:53:39
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <stdio.h>

using namespace std;

int sir[200001];

int c[] = { -1, 1 };
int st, dr;
int sum,sumc,ps,l;
int summ=-1000000, ll;

int n;
int asd;

int main()
{
	int a,b,i;
	freopen("buline.in","r",stdin);
	freopen("buline.out","w",stdout);

	scanf("%d\n", &n );

	for ( i = 1; i <= n; i++ ) {
		scanf("%d %d\n", &a, &b );
		sir[i] = a * c[b];
	}

	st = 1;
	dr = 1;

	while ( 1 ) {
		sum += sir[dr];
		if ( sum < 0 )
		{
			sum -= sir[dr];
			if ( sum > summ )
			{
				summ = sum;
				ps = st;
				ll = l;
			}
					
			sum = 0;
			l = 0;
			dr++;
			if ( dr > n ) dr = 1;
			st = dr;
		}
		else
		{
			l++;
			dr++;
			if ( dr > n ) dr = 1;
			if ( dr == st ) break;
			if ( sum > summ )
			{	
				summ = sum;
				ps = st;
				ll = l;
			}
		}
	}

	printf("%d %d %d\n", summ, ps, ll );

	fclose(stdin);
	fclose(stdout);

	return 0;
}