Submission #572927

#TimeUsernameProblemLanguageResultExecution timeMemory
572927MohamedAliSaidaneEvent Hopping (BOI22_events)C++14
10 / 100
1595 ms128512 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; indexed_set nid; vpi v; int reach[nax][nax]; vi adj[nax]; void solve() { memset(reach,-1,sizeof(reach)); cin >> n >> q; for(int i = 0; i < n ;i ++) { int s, e; cin >> s >> e; nid.insert(s); nid.insert(e); v.pb({s,e}); } //sort(all(v)); for(int i = 0; i < n ;i ++) { for(int j = 0; j < n; j ++) { if(v[i].ss >= v[j].ff && v[i].ss <= v[j].ss) adj[i].pb(j); } } for(int i= 0; i < n; i ++) { queue<pii> q; q.push({i,0}); while(!q.empty()) { int node = q.front().ff; int d= q.front().ss; q.pop(); reach[i][node] =d; for(auto e: adj[node]) { if(reach[i][e] != -1) continue; reach[i][e] = d+ 1; q.push({e,d + 1}); } } } while(q--) { int s, e; cin >> s >> e; s--; e--; if(reach[s][e] == -1) 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...