Cod sursa(job #79193)

Utilizator MarcvsHdrMihai Leonte MarcvsHdr Data 21 august 2007 09:50:33
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
# include <stdio.h>

const long int MAXN=400000;
long int n,v[MAXN+1],sm,pim,pfm,count;

void citire()
{
FILE *f=fopen("buline.in","r");
fscanf(f,"%ld",&n);
long int i,aa;
for (i=1;i<=n;i++)
	{
	fscanf(f,"%ld%ld",&v[i],&aa);
	if (!aa) v[i]*=-1;
	v[n+i]=v[i];
	}
fclose(f);
}

void scrie()
{
FILE *g=fopen("buline.out","w");
fprintf(g,"%ld %ld %ld\n",sm,pim,pfm);
fcloseall();
}

void calculeaza()
{
sm=v[1];pim=1;pfm=1;count=1;
long int i=1;
do
	{
	i++;
	if (v[i-1]+v[i]>v[i])
		{
		v[i]=v[i-1]+v[i];
		count++;
		if (sm<v[i]&&count<=n)
			{
			sm=v[i];
			pim=i-count+1;
			pfm=count;
			}
		}
	else
		{
		count=1;
		if (sm<v[i]&&count<=n)
			{
			sm=v[i];
			pim=i-count+1;
			pfm=count;
			}
		}
	}
while (i-count+1<=n&&i<=2*n);
}

int main()
{
citire();
calculeaza();
scrie();
return 0;
}