제출 #1084384

#제출 시각아이디문제언어결과실행 시간메모리
1084384BananabreadPassport (JOI23_passport)C++17
16 / 100
2080 ms49236 KiB
#include<bits/stdc++.h> #define ll long long #define ntr "\n" #define mod (ll)(1e9+7) #define taskname "" #define frep freopen(taskname".inp","r",stdin); freopen(taskname".out","w",stdout); using namespace std; ll l[3001]; ll r[3001]; ll n; ll q; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); //frep; cin>>n; for(int i=1;i<=n;i++){ cin>>l[i]>>r[i]; } ll dp[n+1][n+1]; cin>>q; for(int i=1;i<=q;i++){ ll x; cin>>x; memset(dp,0x3f,sizeof(dp)); dp[l[x]][r[x]]=1; for(ll i=n;i>0;i--){ for(ll j=i;j<=n;j++){ if(dp[i][j]>=1e18) continue; for(int u=i;u<=j;u++){ ll nl=min(i,l[u]); ll nr=max(j,r[u]); dp[nl][nr]=min(dp[nl][nr],dp[i][j]+1); } } } cout<<(dp[1][n]<=1e18 ? dp[1][n] : -1)<<ntr; } }
#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...