Pagini recente » Istoria paginii runda/cocurs | Cod sursa (job #1850799) | Istoria paginii runda/info_bv_11-12_1 | Cod sursa (job #2848405) | Cod sursa (job #2610346)
#include <fstream>
using namespace std;
ifstream in("branza.in");
ofstream out("branza.out");
int v[100002], dq[100002];
int main() {
int n, s, t, st, dr, c;
long long brinza=0;
in>>n>>s>>t;
t++;
st=0;
dr=-1;
for (int i = 0; i < n; i++ ) {
in>>v[i]>>c;
if ( st <= dr && dq[st] == i - t ) {
st++;
}
while ( st <= dr && v[dq[dr]] + ( i - dq[dr] ) * s >= v[i] ) {
dr--;
}
dq[++dr] = i;
brinza += 1LL * c * ( v[dq[st]] + 1LL * ( i - dq[st] ) * s );
}
out<<brinza;
return 0;
}