Cod sursa(job #254737)

Utilizator DjSefuWrong name DjSefu Data 7 februarie 2009 13:56:36
Problema Cuburi2 Scor 20
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 1.09 kb
#include<stdio.h>
FILE *f=fopen("cuburi2.in","r"),
     *g=fopen("cuburi2.out","w");
#define N_MAX 250006
int n,i,j,max,maxp,x,y,k,mod1[N_MAX],m,a[N_MAX],mod2[N_MAX],mod[N_MAX];
int main()
{ fscanf(f,"%d %d",&n,&m);
  for(i=1;i<=n;++i)  fscanf(f,"%d",&a[i]);
  for(i=1;i<=m;++i) { fscanf(f,"%d %d",&x,&y);
                      max=1000000000;
                      k=0;
                      mod1[x-1]=0;
                      for(j=x;j<=y;++j) { mod1[j]=mod1[j-1]+k;
                                          k+=a[j];
                                          }
                      k=0;
                      mod2[y+1]=0;
                      for(j=y;j>=x;--j) { mod2[j]=mod2[j+1]+k;  
                                          k+=a[j];
                                          mod[j]=mod1[j]+mod2[j];
                                          if(mod[j]<=max) max=mod[j],maxp=j;
                                          }  
                      fprintf(g,"%d %d\n",maxp,mod[maxp]);
                      }
  fclose(f);
  fclose(g);
  return 0;
}