Submission #834112

#TimeUsernameProblemLanguageResultExecution timeMemory
834112LiudasAesthetic (NOI20_aesthetic)C++17
13 / 100
2063 ms39316 KiB
#include <iostream> #include <vector> #include <set> #include <queue> #include <algorithm> #define int long long using namespace std; signed main(){ int N, M; cin >> N >> M; vector<vector<pair<int, int>>> tree(N); vector<int> vals(M); for(int i = 0; i < M; i ++){ int a, b, c; cin >> a >> b >> c; a--; b--; tree[a].push_back({b,i}); tree[b].push_back({a,i}); vals[i] = c; } int an = 0; for(int i = 0; i < M-1; i ++){ int tval = *max_element(vals.begin()+i+1, vals.end()); vals[i] += tval; priority_queue<vector<int>> que; que.push({0,0}); int ans = 0; vector<bool> vis(N); while(!que.empty()){ int a = -que.top()[0], b = que.top()[1]; que.pop(); if(b == N-1){ans = a; break;} if(vis[b])continue; vis[b] = true; for(auto [l, r] : tree[b]){ que.push({-a-vals[r], l}); } } an = max(an, ans); vals[i] -= tval; } cout << an << endl; 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...