Pagini recente » Cod sursa (job #747770) | Cod sursa (job #1355487) | Cod sursa (job #1137121) | Cod sursa (job #2562848) | Cod sursa (job #1907892)
#include <fstream>
#include <deque>
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
int n,s,t,i,c[100002],kg[100002],marime,ultimul,p,u;
long long suma;
//deque <int> d;
int d[100002];
int main()
{
f>>n>>s>>t;
for(i=1;i<=n;i++)
{
f>>c[i]>>kg[i];
}
//d.push_back(1);
//suma+=c[1]*kg[1];
p=1;
u=0;
for(i=1;i<=n;i++)
{
//marime=d.size();
//ultimul=d.back();
while(p<=u && c[d[u]]+(i-d[u])*s > c[i])
{
u--;
}
d[++u]=i;
if(i-d[p]==t+1)
++p;
suma+=1LL*(c[d[p]]+(i-d[p])*s)*kg[i];
}
g<<suma;
return 0;
}