# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
449855 | Karliver | Crocodile's Underground City (IOI11_crocodile) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "crocodile.h"
#include <bits/stdc++.h>
#define FIXED_FLOAT(x) std::fixed <<std::setprecision(20) << (x)
#define all(v) (v).begin(), (v).end()
using namespace std;
#define forn(i,n) for (int i = 0; i < (n); ++i)
#define rforn(i, n) for(int i = (n) - 1;i >= 0;--i)
using ll = long long;
int mod = (ll)1e9 + 7;
#define PI acos(-1)
typedef pair<int, int> pairs;
const int INF = 1e9 + 100;
const int N = 2e5 + 100;
const double eps = 1e-7;
template <class T> using V = vector<T>;
template <class T> using VV = V<V<T>>;
template <typename XPAX>
void ckma(XPAX &x, XPAX y) {
x = (x < y ? y : x);
}
template <typename XPAX>
void ckmi(XPAX &x, XPAX y) {
x = (x > y ? y : x);
}
V<pairs> g[N];
int dis[N][2];
int travel_plan(int n, int m, int R[][2], int L[], int K, int P[])
{
memset(dis, INF, sizeof(dis));
forn(i, m) {
g[R[i][0]].emplace_back(R[i][1], L[i]);
g[R[i][1]].emplace_back(R[i][0], L[i]);
}
priority_queue<pairs, V<pairs>, greater<pairs>> q;
V<int> vis(n, 0);
V<bool> exit(N, false);
forn(i, K) {
q.emplace(0, P[i]);
exit[P[i]] = 1;
dis[i][0] = dis[i][1] = 0;
}
while(q.size()) {
auto [s, v] = q.top();
q.pop();
if(vis[v])continue;
++vis[v];
for(auto [i, w] : g[v]) {
int x = s + w;
if(exit[i])continue;
if(x < dis[i][0]) {
swap(dis[i][1], dis[i][0]);
dis[i][0] = x;
q.emplace(x, i);
}
else if(x < dis[i][1]) {
dis[i][1] = x;
q.emplace(x, i);
}
}
}
return dis[0][1];
}
int main() {
return 0;
}