Submission #958193

#TimeUsernameProblemLanguageResultExecution timeMemory
958193daodaCrocodile's Underground City (IOI11_crocodile)C++17
100 / 100
684 ms75956 KiB
#include "crocodile.h" #include <bits/stdc++.h> // #include <ext/pb_ds/assoc_container.hpp> #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define FOR(x, a, b) for(int x=a;x < int(b); x++) #define endl '\n' #define TESTCASE ll t; cin >> t; for(ll T=0; T < t; T++) using namespace std; // using namespace __gnu_pbds; // typedef tree<int,null_type,less<int>, rb_tree_tag, tree_order_statistics_node_update> Indexed_set; typedef long long int ll; typedef vector<ll> vll; typedef pair<ll,ll> pll; typedef vector<pll> vpll; typedef vector<bool> vb; typedef vector<char> vc; typedef vector<int> vi; typedef pair<int, int> pi; typedef vector<pi> vpi; typedef long double ld; const int INF = 1e9; const ll INIT = 7; const ll MAX_VAL = (ll) 1e9; const ll MAX_SZ = (ll) 2e5; const long double eps = 1e-4; const int MOD = 998244353; vi rd = {0, 1 , 0, -1}, cd = {1, 0, -1, 0}; const int MAX_DIST = int(1e9); int travel_plan(int n, int m, int r[][2], int* l, int k, int* p) { vector<vpi> adj(n); FOR(i, 0, m) { int f = r[i][0], s = r[i][1]; adj[f].push_back(make_pair(l[i], s)); adj[s].push_back(make_pair(l[i], f)); } vi ans(n, -2); priority_queue<pi, vpi, greater<pi>> tr; FOR(i, 0, k) { tr.push(make_pair(0, p[i])); ans[p[i]] = -1; } while(!tr.empty()) { auto [dist, chamber] = tr.top(); tr.pop(); if(ans[chamber] == -2) { ans[chamber]++; continue; } if(ans[chamber] >= 0 || dist > MAX_DIST) continue; ans[chamber] = dist; for(auto next : adj[chamber]) { tr.push(make_pair(dist + next.first, next.second)); } } // FOR(i, 0, n) cout << ans[i] << " "; // cout << endl; return ans[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...