Pagini recente » Cod sursa (job #1331466) | Cod sursa (job #1396118) | Cod sursa (job #1839606) | Cod sursa (job #2335357) | Cod sursa (job #2718008)
#include <fstream>
using namespace std;
ifstream in("branza.in");
ofstream out("branza.out");
int x[100005], v[100005], y[100005];
int main()
{
int n, st = 1, dr = 0, s, t, i;
long long af;
in >> n >> s >> t;
t++;
for (i=1; i<=n; i++)
in >> x[i] >> v[i];
y[++dr] = 1;
af = (long long)x[1] * v[1];
for (i=2 ; i <= n; i++)
{
while (st <= dr && x[i] <= (i - y[dr]) * s + x[y[dr]])
dr--;
dr++;
y[dr] = i;
if (i - t == y[st])
st++;
af += (x[y[st]] + (long long)s * (i - y[st])) * v[i];
}
out<< af;
return 0;
}