Cod sursa(job #55734)

Utilizator FlorianFlorian Marcu Florian Data 28 aprilie 2007 12:21:51
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<math.h>
#include<stdio.h>
#include<values.h>
int main()
{long *v=new long[400003],n,i;
int x;
long long smax;
FILE*f=fopen("buline.in","r");
FILE *g=fopen("buline.out","w");
fscanf(f,"%ld",&n);
for (i=1;i<=n;i++)
	{
	fscanf(f,"%ld %d",&v[i],&x);
	if (x==0) v[i]=-v[i];
	v[i+n]=v[i];
	}
long sc,pc,pf=1,pi=1;
sc=v[1];smax=v[1];pc=1;
for (i=2;i<2*n;i++)
	{
	if(sc>0) sc+=v[i];
	else {sc=v[i]; pc=i;}
	if(smax<sc&&i-pc<n) {smax=sc; pi=pc;pf=i;}
	}
if(pi>n) pi-=n;
fprintf(g,"%llu %ld %ld",smax,pi,pf-pi+1);
fclose(f);
fclose(g);
return 0;}