제출 #948903

#제출 시각아이디문제언어결과실행 시간메모리
948903vinCijanobakterije (COCI21_cijanobakterije)C++14
15 / 70
20 ms604 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair #define ll long long #define pii pair<int, int> #define pll pair<ll, ll> const int INF = 2147483645; const int maxN = (int)1e3+5; const ll LLINF = LLONG_MAX; //const ll mod = 998244353; const ll mod = 1000000007; vector<int> adj[maxN]; int dist[maxN], ctr=1, cc[maxN]; bool vis[maxN], avis[maxN]; void dfs(int s) { vis[s] = true; avis[s] = true; if (!cc[s]) cc[s] = ctr; for (auto i: adj[s]) { if (vis[i]) continue; vis[i] = true; avis[i] = true; dist[i] = dist[s]+1; dfs(i); } } void solv() { int n, m, a, b; cin>>n>>m; for (int i=0;i<m;i++) { cin>>a>>b; adj[a].pb(b); adj[b].pb(a); } int mx = 0, start = 1, ans = 0, res = 0; for (int i=1;i<=n;i++) { mx = 0; ans = 0; start = i; memset(dist, 0, sizeof dist); memset(vis, 0, sizeof vis); dfs(i); for (int j=1;j<=n;j++) { if (dist[j] > mx) { mx = dist[j]; start = j; } } memset(dist, 0, sizeof dist); memset(vis, 0, sizeof vis); dfs(start); for (int j=1;j<=n;j++) { ans = max(ans, dist[j]); } if (cc[i] == ctr) res += ans+1; ctr++; } cout<<res<<'\n'; } int main() { ios::sync_with_stdio(0); cin.tie(0); int t=1; // cin>>t; while (t--) solv(); }
#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...