제출 #1261687

#제출 시각아이디문제언어결과실행 시간메모리
1261687ereringPassport (JOI23_passport)C++20
16 / 100
2097 ms17328 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...