Pagini recente » Diferente pentru utilizator/nando intre reviziile 5 si 6 | Borderou de evaluare (job #3205421) | Cod sursa (job #2974761)
#include <fstream>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
const int N=2000000005;
ifstream cin("branza.in");
ofstream cout("branza.out");
int v[100005],x,d[100005],i,n,s,t,c,p,ul,pr;
long long S;
int main()
{
cin>>n>>s>>t;
d[1]=1;
ul=pr=1;
for(i=1;i<=n;i++)
{
cin>>c>>p;
v[i]=c;
while(pr<=ul&&c<=v[d[ul]]+(i-d[ul])*s)
ul--;
ul++;
d[ul]=i;
S+=(v[d[pr]]+(i-d[pr])*s)*1LL*p;
if(i-d[pr]==t)
pr++;
}
cout<<S;
return 0;
}