Submission #210479

#TimeUsernameProblemLanguageResultExecution timeMemory
210479hanagasumiRailway Trip (JOI17_railway_trip)C++17
5 / 100
2096 ms524292 KiB
#include <iostream> #include <vector> #include <cmath> #include <algorithm> #include <deque> #include <map> #include <set> #include <complex> #include <string> #include <unordered_map> #include <unordered_set> #include <random> #include <chrono> #define ft first #define sc second #define pb push_back #define len(v) (int)v.size() #define int ll using namespace std; typedef long long ll; typedef long double ld; int inf = 1e9 + 100; signed main() { #ifdef PC freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); #endif ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k, q; cin >> n >> k >> q; vector<int> l(n); vector<vector<int>> g(n); for (int i = 0; i < n; i++) { cin >> l[i]; } vector<int> was(k + 1, -1); for (int i = n - 1; i >= 0; i--) { for (int j = 1; j <= l[i]; j++) { if(was[j] == -1) continue; g[i].pb(was[j]); } for (int j = 1; j <= l[i]; j++) was[j] = i; } was = vector<int> (k + 1, -1); for (int i = 0; i < n; i++) { for (int j = 1; j <= l[i]; j++) { if(was[j] == -1) continue; g[i].pb(was[j]); } for (int j = 1; j <= l[i]; j++) was[j] = i; } vector<vector<int>> dst(n, vector<int> (n, inf)); for (int i = 0; i < n; i++) { dst[i][i] = 0; deque<int> q; q.pb(i); while(len(q) > 0) { auto now = q.front(); q.pop_front(); for (auto x : g[now]) { if(dst[i][x] != inf) continue; dst[i][x] = dst[i][now] + 1; q.pb(x); } } } for (int i = 0; i < q; i++) { int a, b; cin >> a >> b; a--, b--; cout << dst[a][b] - 1 << '\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...