Cod sursa(job #59712)

Utilizator andrei.12Andrei Parvu andrei.12 Data 10 mai 2007 11:16:05
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#include<math.h>
int s, i, smax, lg, poz, lgf, pozf, n, nr;
struct ches{
	int a, b;
};
ches v[400000];
int main()
{
	freopen("buline.in","r",stdin);
	freopen("buline.out","w",stdout);
	scanf("%d",&n);
	for (i=1;i<=n;i++)
		scanf("%d%d",&v[i].a,&v[i].b);
	for (i=n+1;i<2*n;i++){
		v[i].a=v[i-n].a;
		v[i].b=v[i-n].b;
	}
	nr=1;
	s=0;
	poz=1;
	lg=0;
	while (nr<2*n){
		if (lg<n){
			s+=pow(-1,v[nr].b-1)*v[nr].a;
			lg++;
			if (s>smax){
				pozf=poz;
				lgf=lg;
				smax=s;
			}
			if (s<=0){
				s=0;
				lg=0;
				poz=nr+1;
			}
		}
		else {
			s=0;
			poz=nr+1;
			lg=0;
		}
		nr++;
	}
	printf("%d %d %d\n",smax,pozf,lgf);
	fclose(stdin);
	fclose(stdout);
	return 0;
}