Pagini recente » Cod sursa (job #2928201) | Cod sursa (job #2570709) | Cod sursa (job #1035000) | Cod sursa (job #1521073) | Cod sursa (job #2610328)
#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 += 1 * c * ( v[dq[st]] + 1 * ( i - dq[st] ) * s );
}
out<<brinza;
return 0;
}