Pagini recente » Cod sursa (job #1071851) | Cod sursa (job #2495585) | Cod sursa (job #2157828) | Cod sursa (job #2895249) | Cod sursa (job #254450)
Cod sursa(job #254450)
#include <cstdio>
#define nmax 500
int n, m;
int a[nmax];
int s[nmax][nmax];
inline int abs(int a)
{
return a < 0 ? -a : a;
}
void read()
{
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; ++i)
scanf("%d", &a[i]);
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
s[i][j] = s[i][j - 1] + a[j] * abs(i - j);
}
void solve()
{
int x, y, maxp, max;
for (; m; --m)
{
max = maxp = -1;
scanf("%d%d", &x, &y);
for (int i = x; i <= y; ++i)
{
int newc = s[i][i - 1] - s[i][x - 1] + s[i][y] - s[i][i];
if (newc < max || max == -1)
{
max = newc;
maxp = i;
}
}
printf("%d %d\n", maxp, max);
}
}
int main()
{
freopen("cuburi2.in","r",stdin);
freopen("cuburi2.out","w",stdout);
read();
solve();
return 0;
}