Pagini recente » Cod sursa (job #1500387) | Cod sursa (job #2075923) | Cod sursa (job #1944723) | Cod sursa (job #1142628) | Cod sursa (job #2153855)
#include <fstream>
using namespace std;
ifstream in("branza.in");
ofstream out("branza.out");
const int N = 100002;
int n, s, t, c[N], p[N], deq[N];
void solve() {
int smax = 0;
int st = 0, dr = -1;
for (int i = 1; i <= n; i++) {
if (st <= dr && deq[st] == i - t - 1) {
st++;
}
while (st <= dr && c[i] * p[ deq[dr] ] + c[i] * (i - deq[dr]) * s >= c[i] * p[i]) {
dr--;
}
deq[++dr] = i;
smax += (c[i] * p[ deq[st] ] + c[i] * (i - deq[st]) * s);
}
out << smax;
}
int main()
{
in >> n >> s >> t;
for (int i = 1; i <= n; i++) in >> p[i] >> c[i];
in.close();
solve();
out.close();
}