Pagini recente » Cod sursa (job #2763165) | Cod sursa (job #1398394) | Cod sursa (job #588945) | Cod sursa (job #2640406) | Cod sursa (job #1396855)
#include <fstream>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
long long cant[100001],k,i,n,a[100001],Deque[100001],s,Back,Front,sum;
int main()
{
fin>>n>>s>>k;
Front=1;
for(i=1;i<=n;i++)
fin>>a[i]>>cant[i];
for(i=1;i<=n;i++)
{
if(Deque[Front]==i-k-1)
Front++;
while(a[i]<=(a[Deque[Back]]+1ll*s*(i-Deque[Back]))&&Front<=Back)
Back--;
Deque[++Back]=i;
sum+=1ll*(a[Deque[Front]]+(i-Deque[Front])*s)*cant[i];
}
fout<<sum;
return 0;
}