Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int l, n, f, b;
- ll rest[1000001];
- int mx[1000001];
- ll ans;
- int main(){
- freopen("reststops.in", "r", stdin);
- freopen("reststops.out", "w", stdout);
- cin >> l >> n >> f >> b;
- int cover = f-b;
- for(int i=0; i<n; i++){
- ll p, t;
- cin >> p >> t;
- rest[p] = t;
- }
- mx[l] = l;
- for(int i=l-1; i>=1; i--){
- if(rest[mx[i+1]]<rest[i]){
- mx[i] = i;
- }else{
- mx[i] = mx[i+1];
- }
- }
- //for(int i=1; i<=l; i++){
- //cout << i << ", " << mx[i] << ", " << rest[mx[i]] << '\n';
- //}
- int pos = mx[1];
- int prev = 0;
- while(pos<=l){
- ans+=(cover*rest[pos]*(pos-prev));
- if(pos>=l) break;
- prev = pos;
- pos = mx[pos+1];
- }
- cout << ans << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement