Pagini recente » Cod sursa (job #1256300) | Cod sursa (job #2472974) | Cod sursa (job #1895584) | Cod sursa (job #773923) | Cod sursa (job #2065770)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("branza.in");
ofstream out("branza.out");
int d[100000], c[100000];
int main()
{
int N,S,T,p,i=0, dr, st;
long long s=0;
in>>N>>S>>T;
T++;
st=0;
dr=-1;
for( i=0; i<N; ++i)
{
in>>c[i]>>p;
if(st<=dr && d[st]==i-T) ++st;
while(st<=dr &&c[i]<=c[d[dr]]+S*(i-d[dr]))
{
--dr;
}
d[++dr]=i;
s += (c[d[st]] + (long long)S*(i-d[st]))*p;
}
out<<s;
return 0;
}