Submission #896391

#TimeUsernameProblemLanguageResultExecution timeMemory
896391karamkallasiEvent Hopping (BOI22_events)C++14
10 / 100
1555 ms109168 KiB
#include <bits/stdc++.h> #define T ll tt ; cin>>tt ; while(tt--) #define fast ios::sync_with_stdio(NULL); cin.tie(0); cout.tie(0); #define endl '\n' #define yes void (cout << "YES" << endl) #define no void (cout << "NO" << endl) #define pb push_back #define F first #define S second #define ld long double #define fixed(g) fixed<<setprecision(g) #define ll long long using namespace std; const ll N = 2e6 + 9 ; const ll oo = 1e18 + 7 ; ll n , m , k , x , y , z , ind , ans , a[N] , b[N] , mn , sz[N] ; bool vis[N] , ff ; vector<ll>v[N]; void bfs(ll x , ll y){ for(ll i=1 ; i<=n ; i++){ vis[i] = 0 ; sz[i] = 0 ; } ff = 0 , ans = -1 ; queue<ll> q ; q.push(x); while(!q.empty()){ ll node = q.front() ; q.pop() ; vis[node] = 1 ; // cout<<node<<'&'<<sz[node]<<' '<<vis[4]<<endl ; for(auto e : v[node]){ if(vis[e])continue ; vis[e] = 1 ; sz[e] = sz[node] + 1 ; if(e==y){ ans = sz[e] ; ff = 1 ; break ; } q.push(e); } if(ff)break ; } } int main(){ fast cin >> n >> m ; for(ll i=1 ; i<=n ; i++){ cin >> a[i] >> b[i] ; } for(ll i=1 ; i<=n ; i++){ for(ll j=1 ; j<=n ; j++){ if(i==j)continue ; if(a[j]<=b[i] && b[i]<=b[j]) v[i].pb(j); } } while(m--){ cin >> x >> y ; if(x==y)cout<<0<<endl; else{ bfs(x , y) ; if(ans==-1)cout<<"impossible"<<endl ; else cout<<ans<<endl ; } } return 0 ; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...