func_code_string: #include <bits/stdc++.h>   using namespace std;   #pragma GCC optimize  trapv    void solve() {     int64_t n, x, y;     cin >> n >> x >> y;     vector<pair<int64_t, int64_t> > a;     for (uint64_t i = 0; i < n; i++) {       int u, v;       cin >> u >> v;       a.push_back(make_pair(u, v));     }     sort(a.begin(), a.end());     multiset<int64_t, greater<int64_t> > curr;     int64_t res = 0;     for (uint64_t i = 0; i < a.size(); i++) {       auto it = curr.upper_bound(a[i].first);       if (it != curr.end()) {         if (((a[i].second - *it) * y) < (x + y * (a[i].second - a[i].first))) {           res += (a[i].second - *it) * y;           res %= 1000000007;           curr.erase(it);         } else {           res += x + y * (a[i].second - a[i].first);           res %= 1000000007;         }         curr.insert(a[i].second);       } else {         res += x + y * (a[i].second - a[i].first);         res %= 1000000007;         curr.insert(a[i].second);       }     }     cout << res << endl;     return;   }   int main() {     std::ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int t = 1;     while (t--) {       solve();     }     return 0;   }   