Submission #849252

# Submission time Handle Problem Language Result Execution time Memory
849252 2023-09-14T10:08:28 Z emad234 Event Hopping 2 (JOI21_event2) C++17
0 / 100
2 ms 4696 KB
#include <bits/stdc++.h>
#define all(v) ((v).begin(),(v).end())
#define ll long long
#define F first
#define S second
const ll mod = 1e9 + 7;
const ll mxN = 1e5 + 2;
using namespace std;
struct range{
  int l,r,id;
};
bool operator<(range a,range b){
  return tie(a.l,a.r,a.id) < tie(b.l,b.r,b.id);
}
bool operator==(range a,range b){
  return tie(a.l,a.r,a.id) == tie(b.l,b.r,b.id);
}
range a[mxN];
range og[mxN];
signed main()
{
  ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0  );
  int n,q;
  cin >>n>>q;
  for(int i = 0;i < n;i++){
    cin >>a[i].l>>a[i].r;
    a[i].id = i + 1;
    og[i] = a[i];
  }
  sort(a,a + n);
  while(q--){
    int s,e;
    cin >>s>>e;
    auto x = og[s - 1],y = og[e - 1];
    int ans = 0;
    int i = lower_bound(a,a + n,x) - a;
    int j = lower_bound(a,a + n,y) - a;
    if(i > j) ans = -1;
    while(i < j){
      int nxt = -1;
      int lt = -1;
      i++;
      while(i <= j){
        if(a[i].l <= x.r && a[i].r >= x.r && a[i].r <= y.r){
          if(nxt == -1 || a[i].r >= a[nxt].r){
            nxt = i;
          }
          lt = i;
        }
        i++;
      }
      if(nxt == -1){
        ans = -1;
        break;
      }
      x = a[nxt];
      i = lt;
      ans++;
    }
    if(ans != -1) cout<<ans<<'\n';
    else cout<<"impossible\n";
  }
}
# Verdict Execution time Memory Grader output
1 Runtime error 2 ms 4696 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 2 ms 4696 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 2 ms 4696 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 2 ms 4696 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -