Submission #923872

#TimeUsernameProblemLanguageResultExecution timeMemory
923872awuPassport (JOI23_passport)C++14
16 / 100
1185 ms1048580 KiB
#include <bits/extc++.h> using namespace __gnu_pbds; using namespace std; // #define int long long #define ll long long // #define double long double #define all(x) x.begin(), x.end() #define debug(x) do{auto _x = x; cerr << #x << " = " << _x << endl;} while(0) #define f first #define s second // #define endl '\n' using pii = pair<int, int>; using pll = pair<ll, ll>; const int inf = 1 << 29; // const ll inf = 1ll << 50; const int MOD = 1e9 + 7; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; vector<int> l(n), r(n); for(int i = 0; i < n; i++) { cin >> l[i] >> r[i]; l[i]--; } vector<vector<vector<pii>>> adj(n, vector<vector<pii>>(n + 1)); for(int i = 0; i < n; i++) { for(int j = i + 1; j <= n; j++) { // adj[i][j - 1].push_back({i, j}); // adj[min(i, l[j - 1])][max(j, r[j - 1])].push_back({i, j}); // if(i + 1 < j) adj[i][j].push_back({i, j - 1}); for(int k = i; k < j; k++) { adj[i][j].push_back({min(i, l[k]), max(j, r[k])}); } } } int q; cin >> q; while(q--) { int x; cin >> x; x--; vector<vector<int>> dist(n, vector<int>(n + 1, inf)); std::priority_queue<pair<int, pii>, vector<pair<int, pii>>, greater<pair<int, pii>>> pq; pq.push({0, {x, x + 1}}); while(pq.size()) { auto cur = pq.top(); pq.pop(); int d = cur.f, i = cur.s.f, j = cur.s.s; if(dist[i][j] <= d) continue; dist[i][j] = d; for(auto nxt : adj[i][j]) { pq.push({d + (nxt.s - nxt.f > j - i), nxt}); } } int ans = dist[0][n]; if(ans == inf) ans = -1; cout << ans << endl; } // int q; cin >> q; // while(q--) { // int x; cin >> x; x--; // int ans = dist[x][x + 1]; // if(ans == inf) ans = -1; // cout << ans << endl; // } }
#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...