Pagini recente » Cod sursa (job #2166483) | Clasament bigboss10 | Cod sursa (job #183841) | Cod sursa (job #1506783) | Cod sursa (job #258966)
Cod sursa(job #258966)
#include <cstdio>
#include <algorithm>
#include <deque>
using namespace std;
#define FIN "branza.in"
#define FOUT "branza.out"
#define N 100007
int n,s,t;
unsigned long long cost;
pair <int,int> v[N];
deque <int> q;
void read()
{
int i;
freopen(FIN,"r",stdin);
scanf("%d %d %d", &n, &s, &t);
for (i = 1; i <= n; ++i)
scanf("%d %d", &v[i].first, &v[i].second);
}
inline int costul(int i,int j)
{
return v[i].first + s * (j - i);
}
void solve()
{
int i;
//q.push_back(1);
for (i = 1; i <= n; ++i)
{
if(!q.empty() && q.front() <= i-t)
q.pop_front();
while(!q.empty() && costul(q.back(),i) >= v[i].first)
q.pop_back();
q.push_back(i);
cost += (long long)costul(q.front(),i) * v[i].second;
/*
sp = 0;
if ( i - q.front().first > t )
q.pop_front();
j = 1;
while (j <= q.size())
sp += q[j--]s + s * (j - 1);
while (v[i].second * )
*/
}
}
void write()
{
freopen(FOUT,"w",stdout);
printf("%llu\n",cost);
}
int main()
{
read();
solve();
write();
return 0;
}