Submission #1088404

#TimeUsernameProblemLanguageResultExecution timeMemory
1088404Rolo678Aesthetic (NOI20_aesthetic)C++14
0 / 100
327 ms38880 KiB
#include <bits/stdc++.h> using namespace std; #define int long long vector<vector<pair<int,int>>>g(3e5+5); vector<long long>dp2(3e5+5,-1); vector<long long>dp(3e5+5,-1); signed main() { int n,m; cin >> n>>m; // cin >> n >> m; vector<pair<int,int>>e(m+1); for(int i = 1;i<=m;i++) { int a,b,w; cin >> a >> b >> w; //cout << 'o'; g[a].push_back({b,i}); g[b].push_back({a,i}); e[i] = {a,b}; //cout << 'o'; } //dfs(); dp[1] =0; queue<int>q; q.push(1); while(!q.empty()) { int v = q.front(); q.pop(); for(auto u : g[v]) { if(dp[u.first] == -1) { q.push(u.first); dp[u.first] = dp[v] + 1; } } } dp2[n] =0; //queue<int>q; q.push(n); while(!q.empty()) { int v = q.front(); q.pop(); for(auto u : g[v]) { if(dp2[u.first] == -1) { q.push(u.first); dp2[u.first] = dp2[v] + 1; } } } int mn = 1e9+5; int num = 0; int mn2 = 1e9+5; int s =1; for(int i = 1;i<=m;i++) { int u = e[i].first; int v = e[i].second; if((dp[v] == mn && dp2[u]== mn2) || (dp2[v] == mn2 && dp[u]== mn)) { num++; } if(dp[v] + dp2[u]+1 <mn+mn2+1) { mn = dp[v]; mn2 = dp2[u]; num = 1; } if(i==m && (dp[u] + dp2[v]+1 <mn+mn2+1)) { num++; s= 0; } // cout << dp[i.first] + dp2[i.second]+1 << '\n'; } cout << mn+mn2 + 1+ ((num == 1)&& !s); }
#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...