#include<bits/stdc++.h>
using namespace std;
using ll = long long;
#define all(x) x.begin(), x.end()
#define L(i, b, e) for (int i = b; i < e; ++i)
#define R(i, b, e) for (int i = b; i >= e; --i)
#define pb emplace_back
#define vi vector<int>
#define sz(x) ((int) x.size())
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, q;
cin >> n >> q;
vector<array<int, 3>> a(n);
L(i, 0, n){
cin >> a[i][0] >> a[i][1];
a[i][2] = i;
}
vi id(n);
L(i, 0, n)id[a[i][2]] = i;
vi p(n);
L(i, 0, n)p[i] = i;
L(i, 0, n - 1){
if (a[i][1] >= a[i + 1][0]){
p[i + 1] = p[i];
}
}
L(i, 0, q){
int s, e;
cin >> s >> e;
s--;
e--;
if (p[s] == p[e] && id[s] <= id[e]){
cout << id[e] - id[s] << "\n";
}else{
cout << "impossible\n";
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |