#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define pb push_back
const int N=2e5+5,inf=1e18;
int n;
pair<int,int> p[N];
int dp[2505][2505];
bool vis[2505][2505];
int solve(int l,int r){
if(l==1 && r==n)return 0;
if(vis[l][r])return dp[l][r];
// cout<<l<<' '<<r<<endl;
vis[l][r]=1; dp[l][r]=inf;
for(int i=1;i<=n;i++){
if(i<l || i>r)continue;
if(l<=p[i].first && r>=p[i].second)continue;
dp[l][r]=min(dp[l][r],solve(min(l,p[i].first),max(r,p[i].second))+1);
}
return dp[l][r];
}
signed main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)cin>>p[i].first>>p[i].second;
int q; cin>>q;
while(q--){
int x; cin>>x;
int sol=solve(p[x].first,p[x].second)+1;
cout<<(sol>1e9?-1:sol)<<endl;
}
}
# | 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... |