Submission #690587

#TimeUsernameProblemLanguageResultExecution timeMemory
690587saayan007Crocodile's Underground City (IOI11_crocodile)C++17
100 / 100
492 ms89252 KiB
#include "crocodile.h" #include <bits/stdc++.h> using namespace std; #warning evth is integer using ll = long long; using pl = pair<long long, long long>; using pi = pair<int, int>; using vi = vector<int>; using vl = vector<long long>; using vpi = vector<pair<int, int>>; using vpl = vector<pair<long long, long long>>; #define fur(i, a, b) for(ll i = a; i <= (ll)b; ++i) #define ruf(i, a, b) for(ll i = a; i >= (ll)b; --i) #define fr first #define sc second #define mp make_pair #define pb emplace_back #define nl "\n" #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() const ll mxN = 1e5 + 1; const ll inf = INT_MAX; vpl adj[mxN]; ll ans[mxN]; int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { fur(i, 0, M - 1) { ll a = R[i][0], b = R[i][1], wt = L[i]; adj[a].pb(b, wt); adj[b].pb(a, wt); } priority_queue<pl> pq; ll mn[mxN]; ll sm[mxN]; fur(i, 0, N - 1) { mn[i] = sm[i] = -1; } fur(i, 0, K - 1) { mn[P[i]] = sm[P[i]] = 0; pq.emplace(-mn[P[i]], P[i]); } bool proc[mxN] = {}; while(!pq.empty()) { ll a = pq.top().sc; pq.pop(); if(proc[a] || sm[a] == -1) { continue; } proc[a] = 1; for(auto [b, wt] : adj[a]) { if(sm[a] + wt < mn[b] || mn[b] == -1) { if(mn[b] != -1) { sm[b] = mn[b]; pq.emplace(-sm[b], b); } mn[b] = sm[a] + wt; } else if(sm[a] + wt < sm[b] || sm[b] == -1) { sm[b] = sm[a] + wt; pq.emplace(-sm[b], b); } } } return (int)sm[0]; }

Compilation message (stderr)

crocodile.cpp:5:2: warning: #warning evth is integer [-Wcpp]
    5 | #warning evth is integer
      |  ^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...