Cod sursa(job #51442)

Utilizator FlorianFlorian Marcu Florian Data 12 aprilie 2007 21:18:54
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
int main()
{long n,start,i,k=1,val,st,dr,rez,a[400001],s[400001];
long p;
int x;
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",&a[i],&x); if (x==0) a[i]=-a[i]; a[i+n]=a[i];s[i]=s[i-1]+a[i];s[i+n]=s[i];}
rez=s[k]; st=1; dr=k;
val=s[k];
start=1;
for (i=k+1;i<=n;i++)
	{val=val+a[i];
	if (val<s[i]-s[i-k]) {val=s[i]-s[i-k];
	start=i-k+1;}
	if (rez<val) {rez=val; st=start;dr=i;}}
fprintf(g,"%ld %ld %ld",rez,st,dr);
fclose(f);
fclose(g);
return 0;}