Submission #579684

#TimeUsernameProblemLanguageResultExecution timeMemory
579684jasminEvent Hopping (BOI22_events)C++17
0 / 100
144 ms22984 KiB
#include<bits/stdc++.h> using namespace std; #define int long long const int inf=1e18; int dijkstra(int start, int ende, vector<vector<int> >& adi, int n){ vector<int> dist(n, inf); vector<bool> vis(n); priority_queue<pair<int,int> > pq; dist[start]=0; pq.push({0, start}); while(!pq.empty()){ int v=pq.top().second; pq.pop(); if(vis[v]) continue; vis[v]=true; for(auto u: adi[v]){ if(dist[v]+1<dist[u]){ dist[u]=dist[v]+1; pq.push({-dist[u], u}); } } } return dist[ende]; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n, q; cin >> n >> q; vector<pair<int,int> > e(n); map<int, pair<vector<int>, vector<int> > > time; for(int i=0; i<n; i++){ int s, t; cin>> s >> t; e[i]={s, t}; time[s].first.push_back(i); time[t].second.push_back(i); } vector<vector<int> > adi(n); set<int> active; for(auto m: time){ for(auto e: m.second.first){ active.insert(e); } for(auto e: m.second.second){ for(auto x: active){ adi[e].push_back(x); } } for(auto e: m.second.second){ active.erase(e); } } cout << "impossible\n"; return 0; vector<vector<int> > dist(n, vector<int> (n, inf)); for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ dist[i][j]=dijkstra(i, j, adi, n); } } for(int i=0; i<q; i++){ int s, e; cin >> s >> e; int ans=dist[s-1][e-1]; if(ans==inf){ cout << "impossible\n"; } else{ cout << ans << "\n"; } } }
#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...