Cod sursa(job #2694566)
| Utilizator | Data | 9 ianuarie 2021 18:16:31 | |
|---|---|---|---|
| Problema | Branza | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f ("branza.in");
ofstream g ("branza.out");
int n,cost,stricat;
deque <pair<int,int>> dq;
int sol;
int main()
{
f>>n>>cost>>stricat;
for(int i=1; i<=n; ++i)
{
if(!dq.empty() && dq.front().second-i>stricat)
dq.pop_front();
int val,it;
f>>val>>it;
while(!dq.empty() && (val<(dq.back().first+(i-dq.front().second)*cost )))
{
dq.pop_back();
}
dq.push_back({val, i});
sol+=dq.front().first*it+(i-dq.front().second)*it*cost;
}
g<<sol;
return 0;
}
