Pagini recente » Cod sursa (job #1714629) | Cod sursa (job #57751) | Cod sursa (job #811948) | Cod sursa (job #1890176) | Cod sursa (job #2862298)
#include <fstream>
#define nmax 250000
#define int long long
using namespace std;
const int inf = 1e17;
int v[nmax + 1], st[nmax + 1], sp[nmax + 1], dr[nmax + 1];
signed main()
{
ifstream cin ("cuburi2.in");
ofstream cout ("cuburi2.out");
int n, m, i, q, a, b, minn, poz, j, act;
cin >> n >> m;
for (i = 1; i <= n; i++)
cin >> v[i], sp[i] = sp[i - 1] + v[i];
st[1] = v[1];
for (i = 2; i <= n; i++)
st[i] = st[i - 1] + sp[i];
dr[n] = v[n];
for (i = n - 1; i >= 1; i--)
dr[i] = dr[i + 1] + (sp[n] - sp[i - 1]);
for (i = 1; i <= m; i++)
{
cin >> a >> b;
minn = inf;
for (j = a; j <= b; j++)
{
act = st[j - 1] - st[a - 1] - (j - a) * sp[a - 1] + dr[j + 1] - (b - j) * (sp[n] - sp[b]) - dr[b + 1];
if (act < minn)
minn = act, poz = j;
}
cout << poz << " " << minn << '\n';
}
return 0;
}