Cod sursa(job #307331)

Utilizator BabanuBarbieru Irineu Babanu Data 23 aprilie 2009 22:42:16
Problema Cuburi2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>   
#define NMAX 250001   
  
long n,m,x,y,i,j,h,v[NMAX],a[2][NMAX];   
  
void min(int st, int dr)   
{   
 long i,min=2000000000,p;   
  
 for (i=st;i<=dr;i++)   
    if (min>(a[0][i]+a[1][i]))   
        {   
         min=a[0][i]+a[1][i];   
         p=i;   
        }   
 printf("%ld %ld\n", p, min);   
}   
  
int main()   
{   
 freopen("cuburi2.in","r",stdin);   
 freopen("cuburi2.out","w",stdout);   
 scanf("%ld %ld", &n, &m);   
 for (i=1;i<=n;i++)   
    scanf("%ld", &v[i]);   
 for (i=1;i<=m;i++)   
    {   
     scanf("%ld %ld", &x, &y);   
     for (j=x;j<=y;j++)   
        { a[0][j]=0; a[1][j]=0; }   
     for (j=x+1;j<=y;j++)   
      for (h=j-1;h>=x;h--)   
        a[0][j]+=v[h]*(j-h);   
     for (j=y-1;j>=x;j--)   
      for (h=j+1;h<=y;h++)   
        a[1][j]+=v[h]*(h-j);   
     min(x,y);   
    }   
 return 0;   
}