Pagini recente » Cod sursa (job #396554) | Diferente pentru home intre reviziile 902 si 256 | Cod sursa (job #103556) | Monitorul de evaluare | Cod sursa (job #2156818)
#include <fstream>
using namespace std;
#define ll long long
ifstream in("branza.in");
ofstream out("branza.out");
ll a[1000001];
ll d[1000001];
int main(){
ll n,k,p,st=0,dr=-1,i,j;
in>>n>>p>>k;
ll s=0,c;
for(i=1; i<=n; ++i){
in>>a[i]>>c;
while(st<=dr && d[st]<=i-k)
++st;
while(st<=dr && a[i]<=a[d[dr]]+(i-d[dr])*p)
--dr;
d[++dr]=i;
s+=(a[d[st]]+(i-d[st])*p)*c;
}
out<<s;
return 0;
}