Submission #851162

#TimeUsernameProblemLanguageResultExecution timeMemory
851162pakapuCheap flights (LMIO18_pigus_skrydziai)C++17
12 / 100
3052 ms83724 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int ans = 0; map<pair<int, int>, int> cost_of_pair; vector<int> cost; vector<int> calculated; vector<vector<pair<int, int>>> g; int dfs(int u, int depth) { if(depth >= 2) { return 0; } if(depth == 1) { for(auto v : calculated) { if(cost_of_pair.count(make_pair(u, v))) { //cout << v << ' ' << u << '\n'; //cout << cost[v] << ' ' << cost[u] << ' ' << cost_of_pair[make_pair(u, v)] << '\n'; ans = max(ans, cost[v] + cost[u] + cost_of_pair[make_pair(u, v)]); } } return 0; } int curr = 0; for(auto v : g[u]) { cost[v.first] = v.second; calculated.push_back(v.first); curr += v.second; dfs(v.first, depth + 1); } return curr; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; cost = vector<int>(n); g = vector<vector<pair<int, int>>>(n); for(int i = 0; i < m; i++) { int from, to, w; cin >> from >> to >> w; from--; to--; g[from].push_back(make_pair(to, w)); g[to].push_back(make_pair(from, w)); cost_of_pair[make_pair(from, to)] = w; cost_of_pair[make_pair(to, from)] = w; } ans = 0; for(int i = 0; i < n; i++) { int curr = dfs(i, 0); calculated.clear(); ans = max(ans, curr); } cout << ans << '\n'; return 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...