Submission #1183976

#TimeUsernameProblemLanguageResultExecution timeMemory
1183976al_reem_2010Hard route (IZhO17_road)C++20
19 / 100
16 ms840 KiB
#include "bits/stdc++.h" using namespace std; #define int long long #define pb push_back #define si size() #define all(a) a.begin(),a.end() #define applejuice ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); const int inf = 1e18; vector<int> l[107]; // adjacency list vector<int> a; // terminals vector<int> ans; // hardnesses vector<vector<int>> mm; // paths between terminals int dis[107], fdis[107]; int r = 0; bool dfs(int i, int j, int p) { for (int k = 0; k < l[i].si; k++) { if (l[i][k] == p) continue; if (l[i][k] == j) { mm[r].pb(l[i][k]); mm[r].pb(i); return true; } if (dfs(l[i][k], j, i)) { mm[r].pb(i); return true; } } return false; } void dfs1(int k, int p, int m) { dis[k] = m; for (int i = 0; i < l[k].si; i++) { int to = l[k][i]; if (to == p || to == mm[r][0] || to == mm[r].back()) continue; dfs1(to, k, m + 1); } } void solve() { int n; cin >> n; for (int i = 0; i < n - 1; i++) { int u, v; cin >> u >> v; l[u].pb(v); l[v].pb(u); } for (int i = 1; i <= n; i++) { if (l[i].si == 1) a.pb(i); // terminals } for (int i = 0; i < a.si; i++) { for (int j = i + 1; j < a.si; j++) { mm.pb({}); // push new path container r = mm.si - 1; dfs(a[i], a[j], -1); if (mm[r].empty()) continue; reverse(all(mm[r])); // ترتيب المسار fill(dis, dis + 107, -inf); fill(fdis, fdis + 107, inf); for (int k = 1; k < mm[r].si - 1; k++) { dfs1(mm[r][k], -1, 0); for (int h = 1; h <= n; h++) { fdis[h] = min(fdis[h], dis[h]); } } int anss = -inf; for (int k = 1; k <= n; k++) { anss = max(anss, fdis[k]); } if (a.si == 2) anss = 0; ans.pb((mm[r].si - 1) * anss); } } int mx = *max_element(all(ans)), cnt = 0; for (auto x : ans) cnt += (x == mx); cout << mx << " " << cnt << "\n"; } signed main() { applejuice; solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...