Submission #1174146

#TimeUsernameProblemLanguageResultExecution timeMemory
1174146JuanJLEvent Hopping (BOI22_events)C++20
10 / 100
1595 ms55028 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 = 100000+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];
}

ll bfs(ll start, ll end){
	vector<ll> cost(n+1,-1);
	vector<bool> visit(n,false);
	
	
	queue<pair<ll,ll>> cola;
	cola.push({start,n});
	//cost[n]=-1;
	
	while(!cola.empty()){
		ll nd = cola.front().fst;
		ll p = cola.front().snd;
		cola.pop();
		if(visit[nd]) continue;
		visit[nd]=true;
		cost[nd]=cost[p]+1;
		//cout<<cost[nd]<<" "<<nd<<'\n';
		for(auto i:adj[nd]) if(!visit[i]){
			cola.push({i,nd});
		}
	}
	
	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 = bfs(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...