Pagini recente » Cod sursa (job #1983957) | Cod sursa (job #2061464) | Cod sursa (job #372092) | Cod sursa (job #2441609) | Cod sursa (job #128632)
Cod sursa(job #128632)
#include<stdio.h>
int suma,s,max1,p1,p2,min,k,n,i,c,v[200001],y[200001];
int main(){
FILE *f=fopen("buline.in","r");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++){
fscanf(f,"%d %d",&v[i],&c);
if(c==0)v[i]=-v[i];
suma+=v[i];
}
fclose(f);
//nu e circ
for(i=1;i<=n;i++){
if(v[i]+y[i-1]>v[i]){
y[i]=v[i]+y[i-1];
}
else{y[i]=v[i];}
if(y[i]>max1){max1=y[i];p1=i;}
}
for(i=1;i<=n;i++){
if(v[i]+y[i-1]<v[i]){
y[i]=v[i]+y[i-1];
}
else{y[i]=v[i];}
if(y[i]<min){min=y[i];p2=i;}
}
FILE *g=fopen("buline.out","w");
if(suma-min>max1){
i=p2+1;
while(s!=min){
i--;
s+=v[i];
}
fprintf(g,"%d %d %d",suma-min,p2+1,n-(p2-i+1));
}
else{
i=p1+1;
while(s!=max1){
i--;
s+=v[i];
}
fprintf(g,"%d %d %d",max1,p1,p1-i+1);
}
fclose(g);
return 0;
}