Pagini recente » Cod sursa (job #1256817) | Cod sursa (job #1036097) | Cod sursa (job #1650833) | Cod sursa (job #798136) | Cod sursa (job #1147176)
#include<fstream>
using namespace std;
int i;
struct branza
{
int z;
long long c;
};
branza dq[100100];
int st=1,dr=0,t,n;
long long cant,cost,s;
long long total;
void stanga()
{
if(i-dq[st].z>t)
st++;
}
void dreapta()
{
while((long long)dq[dr].c*cant+(i-dq[dr].z)*s*cant>(long long)cost*cant&&dr>=st)
{
dr--;
}
dq[++dr].c=cost;
dq[dr].z=i;
}
int main()
{
ifstream fin("branza.in");
ofstream fout("branza.out");
fin>> n>> s>> t;
for(i=1;i<=n;i++)
{
stanga();
fin>>cost >>cant;
dreapta();
total+=(long long)dq[st].c*cant;
if(dq[st].z<i)
total+=(long long)s*cant*(i-dq[st].z);
}
fout<< total;
return 0;
}