Cod sursa(job #128619)

Utilizator katakunaCazacu Alexandru katakuna Data 27 ianuarie 2008 14:57:27
Problema Buline Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
int s,max,p,min,k,n,i,c,v[201],y[201];

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;
}