Pagini recente » Cod sursa (job #1243662) | Cod sursa (job #302623) | Cod sursa (job #580526) | Cod sursa (job #2615365) | Cod sursa (job #1853378)
#include <cstdio>
using namespace std;
long long n, s, t, c[100001], p[100001], dq[100001];
int main()
{
freopen("branza.in", "r", stdin);
freopen("branza.out", "w", stdout);
scanf("%lld%lld%lld", &n, &s, &t);
int Front = 1, Back = 0;
long long Sol = 0;
for(int i = 1; i <= n ; ++i){
scanf("%lld%lld", &c[i], &p[i]);
while(Back >= Front && c[dq[Back]] * p[i] + p[i] * s * (i - dq[Back]) > c[i] * p[i])
--Back;
dq[++Back] = i;
if(i - dq[Front] == t + 1)
++Front;
Sol = Sol + c[dq[Front]] * p[i] + p[i] * s * (i - dq[Front]);
}
printf("%lld", Sol);
return 0;
}