Pagini recente » Cod sursa (job #1484909) | Cod sursa (job #1008967) | Cod sursa (job #969168) | Cod sursa (job #2801154) | Cod sursa (job #1417839)
#include <fstream>
#define DIM 100010
#define f first
#define s second
using namespace std;
ifstream fin ("branza.in" );
ofstream fout("branza.out");
int N, M, i, j, K, ok, minim;
int deque[DIM], C, T, p, u;
long long sum;
pair <int, int> V[DIM];
void SetUp(){
fin >> N >> C >> T;
for(i = 1; i <= N; i ++)
fin >> V[i].f >> V[i].s;
return;
}
void Deque(){
p = 1; u = 1;
deque[p] = 1;
sum += V[1].f * V[1].s;
for(i = 2; i <= N + 1; i ++){
while(p <= u && V[i].f < V[deque[u]].f + (i - deque[u]) * 1LL * C)
u --;
u ++;
deque[u] = i;
if(i - deque[p] == T + 1)
p ++;
sum += (V[deque[p]].f + (i - deque[p]) * C) * 1LL * V[i].s;
}
fout << sum;
return;
}
int main(){
SetUp();
Deque();
return 0;
}