Pagini recente » Cod sursa (job #2112942) | Cod sursa (job #3212618) | Cod sursa (job #294526) | Cod sursa (job #689628) | Cod sursa (job #3125664)
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,f16c,fma,sse3,ssse3,sse4.1,sse4.2")
#include <iostream>
#include <fstream>
#include <stack>
using namespace std;
int maxLen;
stack<pair<int,char>> st;
ifstream myIn("branza.in");
ofstream myOut("branza.out");
long long cost[100000];
long long indexs[100000];
long long sum;
int main() {
long long n, s, t, c, p;
long long start = 0, end = 0;
myIn >> n >> s >> t;
myIn >> c >> p;
cost[0] = c;
indexs[0] = 0;
sum += c * p;
for (long long i = 1; i < n; ++i) {
myIn >> c >> p;
cost[i] = c;
if ((i - indexs[start]) == (t + 1))
start++;
for (long long index = end; index >= start; --index) {
long long todayCost = (i - indexs[index]) * s + cost[indexs[index]];
if (cost[i] <= todayCost)
--end;
else
break;
}
++end;
indexs[end] = i;
long long newIndex = indexs[start];
long long finalCost = (i - newIndex) * s + cost[newIndex];
sum += finalCost * p;
}
myOut << sum;
}
/*
(({}])
*/