#include <bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
const int MXN = 303;
int n, L[MXN], R[MXN], q, xq[MXN], dis[MXN][MXN];
int32_t main() {
cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
cin >> n;
assert(n<=300);
for(int i=1; i<=n; i++) cin >> L[i] >> R[i];
cin >> q;
assert(q==1);
for(int i=1; i<=q; i++) cin >> xq[i];
memset(dis, -1, sizeof(dis));
queue<pii> qu;
dis[xq[1]][xq[1]] = 0;
qu.push({xq[1], xq[1]});
while(!qu.empty()) {
auto [l, r] = qu.front();
qu.pop();
for(int i=l; i<=r; i++) {
int l2 = min(l, L[i]);
int r2 = max(r, R[i]);
if(dis[l2][r2]==-1) {
dis[l2][r2] = dis[l][r]+1;
qu.push({l2, r2});
}
}
}
cout << dis[1][n] << '\n';
return 0;
}
# | 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... |