Pagini recente » Monitorul de evaluare | Cod sursa (job #1934566) | Rating Peca Iulian (pkiulian) | Cod sursa (job #2610176) | Cod sursa (job #1417840)
#include <fstream>
#define DIM 100010
#define f first
#define s second
using namespace std;
ifstream fin ("branza.in" );
ofstream fout("branza.out");
long long N, M, i, j, K, ok, minim;
long long deque[DIM], C, T, p, u;
long long sum;
pair <long long, long long> 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; 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;
}