Cod sursa(job #254569)

Utilizator DjSefuWrong name DjSefu Data 7 februarie 2009 13:01:25
Problema Cuburi2 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 0.92 kb
#include<stdio.h>
FILE *f=fopen("cuburi2.in","r"),
     *g=fopen("cuburi2.out","w");
#define N_MAX 250006

int a[N_MAX],mod1[N_MAX],i,j,k,n,m,x,y,mod2[N_MAX],mod[N_MAX],max,maxp;
int main()
{ fscanf(f,"%d %d",&n,&m);
  for(i=1;i<=n;++i)  fscanf(f,"%d",&a[i]);
  k=a[1];
  for(i=2;i<=n;++i) { 
                      mod1[i]=mod1[i-1]+k;
                      k+=a[i];
                      }
  k=a[n];
  for(i=n-1;i;--i){  
                      mod2[i]=mod2[i+1]+k;
                      k+=a[i];
                      mod[i]=mod1[i]+mod2[i];
                      }
  mod[n]=mod1[n];
  for(i=1;i<=m;++i) { fscanf(f,"%d %d",&x,&y);
                      max=1000000000;
                      for(j=x;j<=y;++j) if(mod[j]<max) max=mod[j],maxp=j;
                      fprintf(g,"%d %d\n",maxp,mod[maxp]-mod2[y]-mod1[x]);
                      }
  fclose(f);
  fclose(g);
  return 0;
}