Pagini recente » Cod sursa (job #2496330) | Cod sursa (job #3170247) | Cod sursa (job #2636849) | Cod sursa (job #1715249) | Cod sursa (job #492469)
Cod sursa(job #492469)
#include <stdio.h>
#define MIN -10002
#define MAX 10002
FILE*f = fopen("buline.in","r");
FILE*g = fopen("buline.out","w");
int v[200001],i,j,n,x,st,sa,s,smax,smin,l1,l2,a,l,p1,p2,p;
char q;
int main() {
smax=MIN;
smin=MAX;
fscanf(f,"%d",&n);
for(i=1;i<=n;i++){
fscanf(f,"%d %d",&x,&q);
if(q)
v[i]=x;
else
v[i]=-x;
st+=v[i];
}
s=v[i];
a=1;
j=1;
for(i=1;i<=n;i++){
if(v[i]>v[i]+sa){
a=i;
s=v[i];
j=1;
} else {
s=sa+v[i];
j++;
}
if(s>smax){
smax=s;
l1=j;
p1=a;
}
}
s=v[i];
a=1;
j=1;
for(i=1;i<=n;i++){
if(v[i]<v[i]+sa){
a=i;
s=v[i];
j=1;
} else {
s=sa+v[i];
j++;
}
if(s<smin){
smin=s;
l2=j;
p2=i+1;
}
}
if(smax>(st-smin))
s=smax, l=l1, p=p1;
else
s=st-smin, l=l2, p=p2;
fprintf(g,"%d %d %d",s,p,l);
fclose(f);
fclose(g);
return 0;
}