Pagini recente » Cod sursa (job #2270119) | Cod sursa (job #1466548) | Cod sursa (job #2322148) | Cod sursa (job #356339) | Cod sursa (job #26630)
Cod sursa(job #26630)
#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;
}