Pagini recente » Istoria paginii monthly-2012/runda-3/clasament | Cod sursa (job #1498) | Cod sursa (job #2240767) | Cod sursa (job #2363071) | Cod sursa (job #393478)
Cod sursa(job #393478)
#include <stdio.h>
#include<vector>
#include<algorithm>
#include<map>
#include <set>
#include <iostream>
#define ll long long
#define N 10050
using namespace std;
vector<int> c;
vector<int> p;
int n, t, cost;
int s;
ll ans;
multiset<int> s1;
vector< multiset<int>::iterator > its;
int main()
{
freopen("branza.in", "r", stdin);
freopen("branza.out", "w", stdout);
scanf("%d", &n);
scanf("%d", &cost);
scanf("%d", &t);
for (int i = 0; i < n; i++)
{
int x,y;
scanf("%d %d", &x,&y);
c.push_back(x);
p.push_back(y);
}
for (int i = 0; i < n; i++)
{
if (s1.size() > (unsigned int)t )
{
s1.erase(its[i - t - 1]);
}
its.push_back( s1.insert(c[i] - s) );
ans += (s + (*s1.begin())) * (ll) p[i];
s += cost;
}
printf("%lld", ans);
return 0;
}