Cod sursa(job #2862298)

Utilizator mateitudordmDumitru Matei mateitudordm Data 5 martie 2022 11:18:48
Problema Cuburi2 Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#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;
}