| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 124381 | AyaBenSaad | Strange Device (APIO19_strange_device) | C++14 | 0 ms | 0 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define ll long long 
using namespace std;
const int M = 1e6 + 6;
int n;
ll a, b
stack <pair <ll, ll> > s;
pair <ll, ll> t[M];
bool inter (ll a, ll b) {
  ll x = s.top().first;
  ll y = s.top().second;
  return ((a <= y && a >= x) || (b <= y && b >= x));
}
  
int main () {
  scanf ("%d %lld %lld", &n, &a, &b);
  for (int i = 0; i < n; i++) {
    scanf ("%lld %lld", &t[i].first, &t[i].second);
  }
  sort (t, t+n);
  for (int i = 0; i < n; i++) {
    if (s.empty() || !inter(t[i].first, t[i].second)) {
      s.push ({t[i].first, t[i].second});
    }
    else {
      int x = min (t[i].first, s.top().first);
      int y = max (t[i].second, s.top().second);
      s.pop();
      s.push({x, y});
    }
  }
  long long ans = 0;
  while (s.size()) {
    ans += s.top().second - s.top().first;
    s.pop();
  }
  printf ("%lld\n", ans);
}
