Pagini recente » Autentificare | Cod sursa (job #2731389) | Istoria paginii runda/oni10/clasament | Istoria paginii runda/placinta/clasament | Cod sursa (job #2725949)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("branza.in");
ofstream g ("branza.out");
int coada[100000],cantitate[100000],zi[100000];
int main()
{
int N,S,T,C,P,i,j,st,dr,pret_zi;
st=dr=0;
long long cost=0;
f>>N>>S>>T;
for (i=1; i<=N; i++)
{
f>>C>>P;
while (C<=coada[dr-1] && dr-1>=st)
dr--;
coada[dr]=C;
zi[dr]=i;
cantitate[dr++]=P;
while (i-zi[st]>T && st+1<=dr-1)
st++;
pret_zi=C*P;
for (j=st; j<dr-1; j++)
if (pret_zi>coada[j]*P+P*S*(i-zi[j]))
pret_zi=coada[j]*P+P*S*(i-zi[j]);
cost+=pret_zi;
}
g<<cost;
}