Pagini recente » Cod sursa (job #2134139) | Cod sursa (job #1236367) | Cod sursa (job #572833) | Cod sursa (job #2895750) | Cod sursa (job #2888939)
#include <fstream>
#include <deque>
using namespace std;
int main()
{
ifstream f("branza.in");
ofstream g("branza.out");
int nr_saptamani, pret_depozit, timp_expirare;
f >> nr_saptamani >> pret_depozit >> timp_expirare;
int pret, cantitate;
deque<pair<int, int>> preturi;
int pret_total = 0;
for(int saptamana = 0;saptamana<nr_saptamani;saptamana++)
{
f >> pret >> cantitate;
while (!preturi.empty() && preturi.back().first + (saptamana - preturi.back().second) * pret_depozit > pret)
preturi.pop_back();
if (!preturi.empty() && saptamana - preturi.front().second > timp_expirare)
preturi.pop_front();
preturi.push_back(make_pair(pret, saptamana));
pret_total += preturi.front().first * cantitate + (saptamana - preturi.front().second) * cantitate * pret_depozit;
}
g << pret_total;
}