Cod sursa(job #1412174)

Utilizator mateicosCostescu Matei mateicos Data 1 aprilie 2015 10:09:01
Problema Buline Scor 20
Compilator c Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
int v[4000001];

int main()
{
    FILE *fin=fopen("buline.in", "r");
    FILE *fout=fopen("buline.out", "w");
    int n, sc, stm, smax, i, drm, st, k;
    fscanf(fin, "%d", &n);
    for(i=1;i<=n;i++){
      fscanf(fin, "%d %d", &v[i], &k);
      v[i]=v[i]*(2*k-1);
      v[i+n]=v[i];
    }
    sc=smax=v[1];
    st=drm=stm=0;
    for(i=2;i<=2*n;i++){
      if(sc>0 && i-st+1<=n){
        sc+=v[i];
      }
      else{
        sc=v[i];
        st=i;
      }
      if(smax<sc){
        stm=st;
        drm=i;
        smax=sc;
      }
      else
      if(smax==sc && i-st+1<drm-stm+1){
        stm=st;
        drm=i;
      }
    }
    fprintf(fout, "%d %d %d", smax, stm, drm-stm+1);
    return 0;
}