Cod sursa(job #1240227)

Utilizator akaprosAna Kapros akapros Data 10 octombrie 2014 18:54:22
Problema Cuburi2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
#define INF 2000000000
using namespace std;
int n,i,j,p,q,m,nr,sol;
int v[1005];
vector < int >a[5005];
int main()
{
    freopen("cuburi2.in","r",stdin);
    freopen("cuburi2.out","w",stdout);
    scanf("%d %d",&n,&m);
    for (i=1;i<=n;i++)
    scanf("%d",&v[i]);
    for (i=1;i<=n;i++)
    {
        p=INF;
        for (j=0;j<n;j++)
        {
            if (i!=1) a[i].push_back(a[(i-1)][j]+(v[i]*(abs(i-j-1))));
            else a[i].push_back(abs(i-j-1)*v[i]);
            // a[i][j]=a[(i-1)][j]+(v[i]*(abs(i-j)));
            //if (p>a[i][j]) q=j,p=a[i][j];
        }
    }
    while (m--)
    {
        scanf("%d %d",&p,&q); sol=INF;
        if (p-1==0)
        {
            for (j=0;j<n;j++) if (a[q][j]<sol) sol=a[q][j],nr=j;
        }else
        {for (j=0;j<n;j++) if (a[q][j]-a[p-1][j]<sol)
        sol=a[q][j]-a[p-1][j],nr=j;}
        printf("%d %d\n",nr+1,sol);
    }
    return 0;
}