Submission #572933

#TimeUsernameProblemLanguageResultExecution timeMemory
572933MohamedAliSaidaneEvent Hopping (BOI22_events)C++14
10 / 100
1589 ms34612 KiB
#include<bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; using namespace std; typedef tree<int,null_type,less<int>,rb_tree_tag, tree_order_statistics_node_update> indexed_set; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; typedef pair<ll,ll> pll; typedef pair<ld,ld> pld; typedef vector<int> vi; typedef vector<ll> vll; typedef vector<pii> vpi; typedef vector<pll> vpl; #define pb push_back #define popb pop_back #define pp pop_back #define pf push_front #define popf pop_front #define all(x) (x).begin(),(x).end() #define ff first #define ss second ///#define int ll int nx[4] = {0,0,1,-1}, ny[4] = {1,-1,0,0}; ll gcd(ll a , ll b) {return b ? gcd(b , a % b) : a ;} ll lcm(ll a , ll b) {return (a * b) / gcd(a , b);} const int nax = 5001; int n, q; vpi v; int reach[nax][nax]; vi adj[nax]; bool vis[nax]; void solve() { cin >> n >> q; for(int i = 0; i < n ;i ++) { int s, e; cin >> s >> e; v.pb({s,e}); } //sort(all(v)); for(int i = 0; i < n ;i ++) { for(int j = 0; j < n; j ++) { if(i == j) continue; if(v[i].ss >= v[j].ff && v[i].ss <= v[j].ss) adj[i].pb(j); } } while(q--) { int s, e; cin >> s >> e; s--; e--; if(!vis[s]) { queue<pii> q; q.push({s,0}); while(!q.empty()) { int node = q.front().ff; int d= q.front().ss; q.pop(); reach[s][node] =d; for(auto e: adj[node]) { if(reach[s][e] != 0) continue; reach[s][e] = d+ 1; q.push({e,d + 1}); } } vis[s] = 1; } if(e == s) cout << "0\n"; else if(reach[s][e] == 0) cout << "impossible\n"; else cout << reach[s][e] << '\n'; } } int32_t main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int tt = 1; while(tt --) solve(); }
#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...