Pagini recente » Cod sursa (job #710729) | Cod sursa (job #2704816) | Cod sursa (job #117934) | Cod sursa (job #3133224) | Cod sursa (job #2729058)
#include <iostream>
#include <fstream>
#include <deque>
#define v first
#define s second
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int N, K, T;
int c, p;
long long S;
deque < pair < int, int > > B;
void Solve()
{
fin >> N >> K >> T;
for( int i = 1; i <= N; ++i )
{
fin >> c >> p;
while( !B.empty() && (i - B.front().s) > T)
B.pop_front();
while( !B.empty() && B.back().v + (i - B.front().s) * K >= c )
B.pop_back();
B.push_back( {c,i} );
S += 1LL * (B.front().v + (i - B.front().s) * K ) * p;
}
fout << S;
}
int main()
{
Solve();
return 0;
}