Cod sursa(job #269418)

Utilizator bixcabc abc bixc Data 2 martie 2009 21:29:15
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#define DIM 200001
int i,max,x,n,p,u,S,P,U,Sa,Pa,t;
int v[2*DIM];

int main(){
  FILE *f = fopen("buline.in","r");
  fscanf(f,"%d",&n);
  for (i=1;i<=n;i++){
    fscanf(f,"%d %d",&v[i],&t);
    if (!t) v[i] = -v[i];
    if (i<n)
      v[i+n] = v[i];
  }

  Sa = v[1];
  Pa = 1;
  max = v[1]; p = 1; u = 1;

  for (i=2;i<=2*n-1;i++){
    x = v[i];
    if (x>Sa+x) {
      S = x;
      P = i;
      U = i;
    } else {
      S = Sa+x;
      P = Pa;
      U = i;
    }
    if (S>max && P-U+1<=n) {
      max = S;
      p = P;
      u = U;
    }
    Sa = S;
    Pa = P;
  }
  fclose(f);

  FILE *g = fopen("buline.out","w");
  fprintf(g,"%d %d %d",max,p,u-p+1);
  fclose(g);

  return 0;
}