Submission #1202345

#TimeUsernameProblemLanguageResultExecution timeMemory
1202345rafsanamin2020Cyberland (APIO23_cyberland)C++17
0 / 100
12 ms2116 KiB
#include "cyberland.h" #include <vector> #include <iostream> using namespace std; // subtask 1 double ac(double k, double f) { // cout << k << " " << f; if (f == 0) { return 0; } else if (f == 2) { return k / 2; } else { return k; } }; int _(int k) { return k == 2 ? 1 : 2; } double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) { double MAX = (5.0e10 + 0.1); vector<vector<double>> C(3, vector<double>(3, MAX)); vector<vector<bool>> V(3, vector<bool>(3, false)); for (int i = 0; i < M; i++) { C[x[i]][y[i]] = min(C[x[i]][y[i]], (double)c[i]); C[y[i]][x[i]] = min(C[y[i]][x[i]], (double)c[i]); V[x[i]][y[i]] = true; V[y[i]][x[i]] = true; } if ((!V[0][H] && !V[0][_(H)]) || (!V[0][H] && !V[H][_(H)])) { return -1; } // cout << C[0][2] << " ___" << "\n"; return min(ac(C[0][_(H)], arr[_(H)]) + C[_(H)][H], C[0][H]); } // #include <bits/stdc++.h> // using namespace std; // const double INF = 5e9 + 0.1; // const int mxN = 1e5 + 100; // vector<pair<int, int>> adj[mxN]; // vector<int> ar; // double ans = INF; // struct DSU // { // vector<int> sz, par; // void init(int n) // { // sz.resize(n, 1); // par.resize(n); // for (int i = 1; i < n; ++i) // par[i] = i; // } // int findPar(int u) // { // if (par[u] == u) // return u; // return par[u] = findPar(par[u]); // } // void unite(int u, int v) // { // int upar = findPar(u); // int vpar = findPar(v); // if (upar == vpar) // return; // if (sz[upar] > sz[vpar]) // { // par[vpar] = upar; // sz[upar] += sz[vpar]; // } // else // { // par[upar] = vpar; // sz[vpar] += sz[upar]; // } // } // }; // double dfs(int u, int par, int h, double cost) // { // if (u == h) // return cost; // if (ar[u] == 2) // cost /= 2; // else if (ar[u] == 0) // cost = 0; // double ans = INF; // for (auto it : adj[u]) // { // if (it.first ^ par) // { // ans = min(ans, dfs(it.first, u, h, cost + it.second)); // } // } // return ans; // } // double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) // { // ar = arr; // DSU ds; // ds.init(N + 5); // for (int i = 0; i <= N; ++i) // adj[i].clear(); // for (int i = 0; i < M; ++i) // { // adj[x[i]].push_back({y[i], c[i]}); // adj[y[i]].push_back({x[i], c[i]}); // ds.unite(x[i], y[i]); // } // if (ds.findPar(0) != ds.findPar(H)) // return -1; // return dfs(0, -1, H, 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...