Cod sursa(job #26630)

Utilizator y2kClaudiu Guiman y2k Data 5 martie 2007 19:43:59
Problema Buline Scor 20
Compilator c Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>
#define IN_FILE "buline.in"
#define OUT_FILE "buline.out"
FILE *f1,*f2;
int a[400000],n;
int max,p,l,prec,p1,l1;
void lucru()
{
 int i;
 max=a[0];
 p=0;
 l=1;
 p1=0;
 l1=1;
 prec=a[0];
 for(i=1;i<2*n; i++)
 {
  if(l1>n)
  {
  i=2*n;
  }
  else
  {
  if((a[i]+prec)>a[i])
    {
    prec=a[i]+prec;
    l1++;
    }
    else
    {
    prec=a[i];
    l1=1;
    p1=i;
    }
    if(prec>max)
    {
     max=prec;
     p=p1;
     l=l1;
    }
    else
    if(prec==max)
    {
     if(l1>l)
     {
     p=p1;
     l=l1;
     }
    }
  }
 }
 p++;
}
int main()
{
 int i;
 f1=fopen(IN_FILE,"r");
 f2=fopen(OUT_FILE,"w");
 fscanf(f1,"%d",&n);
  for(i=0; i<n; i++)
  {
   fscanf(f1,"%d",&p);
   fscanf(f1,"%d",&l);
   if(l==0)
    a[i]=0-p;
   else
    a[i]=p;
   a[i+n]=a[i];
  }
 p=-1;
 l=-1;
 max=-10001;
 lucru();
 fprintf(f2,"%d %d %d",max,p,l);
 fclose(f1);
 fclose(f2);
 return 0;
}