Pagini recente » Cod sursa (job #1948472) | Cod sursa (job #639896) | Cod sursa (job #1328667) | Cod sursa (job #1366276) | Cod sursa (job #2624684)
#include <fstream>
#include <deque>
using namespace std;
long long n, s, t, cost, c[100005], p[100005];
deque<long long> d;
ifstream f("branza.in");
ofstream g("branza.out");
int main()
{
f>>n>>s>>t; // n saptamani, s cost depozit, t termen expirare
// parcurg saptamanile
for(int i=0; i<n; i++){
f>>c[i]>>p[i]; // cost de fabricare, cantitatea cumparata
while(!d.empty() && c[d.back()] + (i-d.back())*s >= c[i]) d.pop_back(); // conditie vandut
while(!d.empty() && (i-d.front())>t) d.pop_front(); // nu vreau sa-mi expire branza
d.push_back(i); // adaug la final ziua
cost = cost+c[d.front()]*p[i] + p[i]*(i-d.front())*s; // adaug la cost
}
g<<cost;
return 0;
}