Cod sursa(job #254754)

Utilizator RobybrasovRobert Hangu Robybrasov Data 7 februarie 2009 13:58:11
Problema Cuburi2 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 0.74 kb
#include <cstdio>
#define inf (1<<31)-1
#define N 10000

int A[N][N],V[N],n,m,min,poz;
int x,y;

int main()
{
	freopen("cuburi2.in","r",stdin);
	freopen("cuburi2.out","w",stdout);
    scanf("%d%d\n",&n,&m);
    int i,j;
    for (i=1; i<=n; i++) scanf("%d",&V[i]);
    for (i=1; i<=n; i++)
    {
        A[i][i]=A[i-1][i];
        for (j=i-1; j; j--) A[i][j]=A[i-1][j]+V[i]*(i-j);
        for (j=i+1; j<=n; j++) A[i][j]=A[i-1][j]+V[i]*(j-i);
    }

    for (i=1; i<=m; i++)
    {
        scanf("%d%d\n",&x,&y);
        min=inf;
        for (j=x; j<=y; j++)
            if (A[y][j]-A[x-1][j]<min)
            {
                min=A[y][j]-A[x-1][j];
                poz=j;
            }
        printf("%d %d\n",poz,min);
    }

    return 0;
}