Pagini recente » Cod sursa (job #886373) | Cod sursa (job #344120) | Cod sursa (job #1375394) | Cod sursa (job #2961822) | Cod sursa (job #2888012)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fcin("branza.in");
ofstream fcout("branza.out");
long long saptamani, cost, cantitate_sapt, pretdep, expira, productie[10000001];
deque<long long> branza;
int main()
{
fcin >> saptamani >> pretdep >> expira;
for(int sapt = 1; sapt <= saptamani; sapt++ )
{
fcin>>productie[sapt]>>cantitate_sapt;
while( branza.empty() != 1 && branza.front() < sapt - expira )
branza.pop_front(); //* scoatem branza expirata din depozit
while( branza.empty() != 1 && ((sapt - branza.back())*pretdep + productie[branza.back()]) > productie[sapt] )
branza.pop_back(); //* verificam daca e mai rentabil sa lasam la pastrat sau sa producem
//while( branza.empty() != false && )
branza.push_back(sapt);
cost += cantitate_sapt * ((sapt - branza.front()) * pretdep + productie[branza.front()] );
}
fcout<<cost;
return 0;
}