Pagini recente » Cod sursa (job #1855921) | Cod sursa (job #854911) | Cod sursa (job #533934) | Cod sursa (job #1460173) | Cod sursa (job #128620)
Cod sursa(job #128620)
#include<stdio.h>
int s,max,p,min,k,n,i,c,v[200201],y[200201];
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];
}
fclose(f);
min=v[1];k=1;
for(i=2;i<=n;i++){
if(v[i]<min){
min=v[i];
k=i;
}
}
y[k]=0;
max=min;p=k;
for(i=k+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]>max){p=i;max=y[i];}
}
y[0]=y[n];
for(i=1;i<k;i++){
if(v[i]+y[i-1]>v[i]){
y[i]=v[i]+y[i-1];
}
else y[i]=v[i];
if(y[i]>max){p=i;max=y[i];}
}
i=p;
k=0;
while(s!=max){
k++;s+=v[i];
i--;if(i==0){i=n;}
}
FILE *g=fopen("buline.out","w");
fprintf(g,"%d %d %d",max,i+1,k);
fclose(g);
return 0;
}