Pagini recente » Cod sursa (job #1923725) | Cod sursa (job #3174566) | Cod sursa (job #2275352) | Cod sursa (job #462920) | Cod sursa (job #334845)
Cod sursa(job #334845)
#include <algorithm>
using namespace std;
#define DIM 100001
struct branza {
int c, p;
};
int n, s, t, dq[ DIM ];
long long rez;
branza a[ DIM ];
void solve() {
int i, st, dr;
scanf( "%d%d%d", &n, &s, &t );
for( i = 1; i <= n; ++ i )
scanf( "%d%d", &a[ i ].c, &a[ i ].p );
st = 1;
dr = 0;
for( i = 1; i <= n; ++ i ) {
for( ; st <= dr && a[ i ].c < a[ dq[ dr ] ].c + ( i - dq[ dr ] ) * s; -- dr );
dq[ ++ dr ] = i;
if( i - dq[ st ] > t )
++ st;
rez += ( a[ dq[ st ] ].c + ( i - dq[ st ] ) * s ) * a[ i ].p;
}
printf( "%lld", rez );
}
int main() {
freopen( "branza.in", "r", stdin );
freopen( "branza.out", "w", stdout );
solve();
return 0;
}