Pagini recente » Cod sursa (job #1219299) | Cod sursa (job #2241990) | Cod sursa (job #2203094) | Cod sursa (job #2659016) | Cod sursa (job #2060607)
#include <iostream>
#include <fstream>
using namespace std;
const long long N=100000;
long long c[N],p[N],d[N];
int main()
{
ifstream fin ("branza.in");
ofstream fout ("branza.out");
long long st=0, dr=-1, n, t, s;
long long C=0;
fin>>n>>s>>t;
for(int i=0; i<n; i++)
{
fin>>p[i]>>c[i];
if(st<=dr&&d[st]==i-t)
st++;
while(st<=dr&&(i-d[dr])*s+p[d[dr]]>=p[i])
dr--;
d[++dr]=i;
if(i==d[st]) C+=p[i]*c[i];
else C+=c[i]*((i-d[st])*s+p[d[st]]);
}
fout<<C;
return 0;
}