Cod sursa(job #2274391)

Utilizator corvinus2003Corvin Ghita corvinus2003 Data 1 noiembrie 2018 19:10:26
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>

using namespace std;

ifstream cin ("branza.in");
ofstream cout ("branza.out");

const int LMAX = 100005;

int n, s, k, st, dr = -1;
int v[LMAX], dq[LMAX], p[LMAX];
long long ans;

int main()
{
    cin >> n >> s >> k;
    k++;
    for (int i = 0; i < n; ++i)
    {
        cin >> v[i] >> p[i];
        if (i >= k && dq[st] == i - k)
            st++;
        while (st <= dr && v[i] <= v[dq[dr]] + s * (i - dq[dr]))
            dr--;
        dq[++dr] = i;
        ans += 1LL * p[i] * (v[dq[st]] + s * (i - dq[st]));
    }
    cout << ans;
    return 0;
}