Submission #749958

#TimeUsernameProblemLanguageResultExecution timeMemory
749958I_love_Hoang_YenCyberland (APIO23_cyberland)C++17
0 / 100
22 ms2128 KiB
#include "cyberland.h" #include <bits/stdc++.h> using namespace std; const int ZERO = 0; const int NORMAL = 1; const int DIV2 = 2; double sub1( int n, int m, int maxDiv2, int target, const vector<int>& edge_froms, const vector<int>& edge_tos, const vector<int>& edge_costs, const vector<int>& node_types) { vector<vector<double>> costs(n, vector<double> (n, -1)); for (int i = 0; i < m; ++i) { int u = edge_froms[i]; int v = edge_tos[i]; costs[u][v] = costs[v][u] = edge_costs[i]; } // go directly from 0 -> target double res = costs[0][target]; // go 0 -> other vertex -> target int other = 3 - target; switch (node_types[other]) { case NORMAL: res = min(res, costs[0][other] + costs[other][target]); break; case ZERO: res = min(res, costs[other][target]); break; case DIV2: res = min(res, costs[0][other] / 2.0 + costs[other][target]); break; } return res; } double solve( int n, int m, int maxDiv2, int target, vector<int> edge_froms, vector<int> edge_tos, vector<int> edge_costs, vector<int> node_types) { if (n == 3) { return sub1( n, m, maxDiv2, target, edge_froms, edge_tos, edge_costs, node_types); } return 0.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...