Submission #603179

#TimeUsernameProblemLanguageResultExecution timeMemory
603179Ahmadsm2005Event Hopping (BOI22_events)C++17
0 / 100
1586 ms397580 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int N,Q,S[5001],E[5001],X,Y; bool ADJ[5001][5001],VIS[5001]; int DIST[5001][5001]; void BFS(int x,int DIS = 0){ for(int i = 0;i <= 5000; i += 1)VIS[i] = 0; queue<pair<int,int>>Q; Q.push({x,0}); while(Q.size()){ int V = Q.front().first, S = Q.front().second; Q.pop(); if(VIS[V])continue; VIS[V] = 1; DIST[x][V] = S; for(int i = 0; i <= 5000; i += 1)if(ADJ[V][i])Q.push({i, S + 1}); } } int32_t main() { cin.tie(0),iostream::sync_with_stdio(0); cin>>N>>Q; for(int i = 0; i <= 5000; i += 1)for(int l = 0; l <= 5000; l += 1)DIST[i][l] = -1; for(int i = 0; i < N; i += 1){ cin>>S[i]>>E[i]; } for(int i = 0; i < N; i += 1){ for(int l = 0; l < N; l += 1){ ADJ[i][l] = ((S[l] <= E[i]&&E[i]<=E[l])?1:0); } } for(int i = 0; i < N; i += 1)BFS(i); while(Q--){ cin>>X>>Y; (DIST[X - 1][Y - 1] == -1?cout<<"impossible\n":cout<<DIST[X - 1][Y - 1]<<'\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...