Submission #1159536

#TimeUsernameProblemLanguageResultExecution timeMemory
1159536lopkusPassport (JOI23_passport)C++20
0 / 100
768 ms1114112 KiB
#include <bits/stdc++.h> #define int long long using namespace std; signed main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector<pair<int,int>> a(n + 1); vector<int> adj[n + 1]; for(int i = 1; i <= n; i++) { int l, r; cin >> l >> r; for(int j = l; j <= r; j++) { adj[i].push_back(j); } } vector<vector<int>> dist(n + 1, vector<int>(n + 1)); for(int i = 0; i <= n; i++) { for(int j = 0; j <= n; j++) { dist[i][j] = n + 1; } } vector<int> ans(n + 1); function<void(int)> bfs = [&](int x) { dist[x][x] = 0; queue<int> Q; Q.push(x); while(!Q.empty()) { int u = Q.front(); Q.pop(); for(auto v : adj[u]) { if(dist[x][v] == n + 1) { dist[x][v] = dist[x][u] + 1; Q.push(v); } } } }; for(int i = 1; i <= n; i++) { bfs(i); for(int j = 1; j <= n; j++) { ans[i] = max(ans[i], dist[i][j]); } } int q; cin >> q; while(q--) { int x; cin >> x; cout << (ans[x] == n + 1 ? - 1 : ans[x]) << "\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...