Submission #166836

#TimeUsernameProblemLanguageResultExecution timeMemory
166836Trickster관광지 (IZhO14_shymbulak)C++14
0 / 100
975 ms205804 KiB
//Suleyman Atayew #include <algorithm> #include <iostream> #include <string.h> #include <stdio.h> #include <vector> #include <queue> #include <cmath> #include <map> #include <set> #define N 5010 #define ff first #define ss second #define pb push_back #define ll long long #define inf 1000000007 #define pii pair <int, int> using namespace std; int n; int a, b; int v[N][N]; vector <int> E[N]; int main() { cin >> n; for(int i = 1; i <= n; i++) { cin >> a >> b; E[a].pb(b); E[b].pb(a); } for(int i = 1; i <= n; i++) for(int h = 1; h <= n; h++) v[i][h] = 1e9; for(int i = 1; i <= n; i++) { queue <int> Q; Q.push(i); v[i][i] = 0; while(!Q.empty()) { int x = Q.front(); Q.pop(); for(auto h: E[x]) if(v[i][h] == 1e9) { v[i][h] = v[i][x] + 1; Q.push(h); } } } int mx = 0; for(int i = 1; i <= n; i++) for(int h = 1; h <= n; h++) mx = max(mx, v[i][h]); vector <pii> A; for(int i = 1; i <= n; i++) for(int h = i; h <= n; h++) if(mx == v[i][h]) A.pb({i, h}); ll ans = 0; for(auto i: A) { int a = i.ff, b = i.ss; queue <int> Q; Q.push(b); int arr[N]; int vis[N]; memset(arr, 0, sizeof(arr)); memset(vis, 0, sizeof(vis)); while(!Q.empty()) { int x = Q.front(); Q.pop(); for(auto h: E[x]) if(v[a][h] == v[a][x]-1 && vis[h] == 0) arr[v[a][h]]++, Q.push(h), vis[h] = 1; } ll sum = 1; for(int h = 1; h < mx; h++) sum *= arr[h]; ans += sum; } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...