Pagini recente » Cod sursa (job #947321) | Cod sursa (job #1011743) | Cod sursa (job #1795527) | Cod sursa (job #763334) | Cod sursa (job #2500162)
#include <cstdio>
#include <set>
using namespace std;
const int maxn = 100005;
multiset <int> diff;
int C[maxn];
int P[maxn];
int main()
{
freopen("branza.in", "r", stdin);
freopen("branza.out", "w", stdout);
int n, S, t;
scanf("%d%d%d", &n, &S, &t);
for(int i = 1; i <= n; i++)
scanf("%d%d", &C[i], &P[i]);
unsigned long long ans = 0;
for(int i = 1; i <= n; i++)
{
diff.insert(C[i] - i * S);
if(i > t)
diff.erase(C[i - t] - (i - t) * S);
int aux = *diff.begin();
ans = ans + 1LL * P[i] * (i * S + aux);
}
printf("%lld\n", ans);
return 0;
}