Pagini recente » Diferente pentru problema/nave_interdimensionale intre reviziile 53 si 5 | Borderou de evaluare (job #2121976) | Cod sursa (job #3132792) | Cod sursa (job #2370148) | 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;
}