Pagini recente » Cod sursa (job #1892580) | Cod sursa (job #3186457) | Cod sursa (job #1771523) | Cod sursa (job #2392638) | Cod sursa (job #719423)
Cod sursa(job #719423)
#include<iostream>
#include<fstream>
#include<deque>
using namespace std;
int C[100000], P[100000];
int N,S,T;
int cost;
deque <int> Deque;
ifstream f("branza.in");
ofstream g("branza.out");
int main()
{
int i,j;
f>>N>>S>>T;
for (i = 1; i <= N; i++) {
f>>C[i]>>P[i];
while (!Deque.empty() && C[i] < (i - Deque.back())*S + C[Deque.back()]) {
Deque.pop_back();
}
Deque.push_back(i);
if (i - Deque.front() > T) {
Deque.pop_front();
}
cost += P[i] * (C[Deque.front()] + S * (i - Deque.front()));
j = 0;
while(Deque.back() != j) {
cout<<Deque[j]<<" ";
j++;
}
cout<<endl;
}
g<<cost<<'\n';
return 0;
}