제출 #1174110

#제출 시각아이디문제언어결과실행 시간메모리
1174110JuanJLEvent Hopping (BOI22_events)C++20
0 / 100
1594 ms11224 KiB
#include <bits/stdc++.h> #define fst first #define snd second #define pb push_back #define SZ(x) (int)x.size() #define ALL(x) x.begin(),x.end() #define forn(i,a,b) for(int i = a; i < b; i++) #define FIN ios::sync_with_stdio(0); cin.tie(0); cout.tie(0) using namespace std; typedef int ll; const int MAXN = 1000+4; vector<ll> adj[MAXN]; ll n; ll dijkstra(ll start, ll end){ vector<ll> cost(n,-1); vector<bool> visit(n,false); priority_queue<pair<ll,ll>> pq; pq.push({0,start}); while(!pq.empty()){ ll nd = pq.top().snd; ll cst = pq.top().fst*-1; pq.pop(); if(visit[nd]) continue; visit[nd]=true; cost[nd]=cst; for(auto i:adj[nd]){ pq.push({(cst+1)*-1,i}); } } return cost[end]; } int main(){ FIN; ll q; cin>>n>>q; vector<pair<ll,ll>> r(n); forn(i,0,n) cin>>r[i].fst>>r[i].snd; forn(i,0,n){ forn(j,0,n){ if(i==j) continue; if(r[i].snd>=r[j].fst&&r[i].snd<=r[j].snd){ adj[i].pb(j); } } } forn(i,0,q){ ll s,e; cin>>s>>e; s--; e--; ll res = dijkstra(s,e); if(res==-1) cout<<"impossible\n"; else cout<<res<<'\n'; } 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...