Pagini recente » Istoria paginii runda/vot/voteaza_algorel | Cod sursa (job #1614740) | Cod sursa (job #2561432) | Cod sursa (job #1574207) | Cod sursa (job #1356844)
#include <fstream>
#define ll long long
using namespace std;
ifstream f("branza.in"); ofstream g("branza.out");
struct art {ll cost, poz;} v[100001];
ll n,p,t,c,x,i,st,dr,tot;
int main()
{ f>>n>>p>>t>>c>>x;
st=dr=1;
v[1].cost=c+(n-1)*p; v[1].poz=1;
tot=c*x;
for(i=2;i<=n;i++)
{ f>>c>>x;
if(v[st].poz==(i-t-1)) st++;
while (v[dr].cost>c+(n-i)*p && st<=dr) dr--;
v[++dr].poz=i; v[dr].cost=c+(n-i)*p;
tot+=(v[st].cost-(n-i)*p)*x;
}
g<<tot<<'\n'; g.close(); return 0;
}