Pagini recente » Cod sursa (job #22412) | Cod sursa (job #2751817) | Cod sursa (job #2705907) | Cod sursa (job #2523604) | Cod sursa (job #426106)
Cod sursa(job #426106)
#include <stdio.h>
int max,p,l,n,i,v[400001],poz[400001],x,nr;
int main() {
FILE *f=fopen("buline.in","r");
FILE *g=fopen("buline.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++) {
fscanf(f,"%d%d",&v[i],&x);
if(x==0)
v[i]=-v[i];
}
for(i=1;i<=n-1;i++) {
v[n+i]=v[i];
}
for(i=1;i<=2*n-1;i++) {
if(v[i]<v[i]+v[i-1]) {
v[i]=v[i]+v[i-1];
poz[i]=poz[i-1];
nr++;
if(nr==n)
break;
}
else
poz[i]=i;
}
for(i=1;i<=2*n;i++)
if(v[i]>max) {
max=v[i];
p=poz[i];
l=i-p+1;
}
else
if(v[i]==max)
if(poz[i]<p)
p=poz[i];
else
if(poz[i]==p&&i-poz[i]+1<l)
l=i-poz[i]+1;
fprintf(g,"%d %d %d",max,p,l);
return 0;
}