Submission #537921

#TimeUsernameProblemLanguageResultExecution timeMemory
537921inksamuraiCijanobakterije (COCI21_cijanobakterije)C++17
70 / 70
61 ms11100 KiB
#include <bits/stdc++.h> using namespace std; #define rep(i,n) for(int i=0;i<n;i++) #define rng(i,x,n) for(int i=x;i<n;i++) #define per(i,n) for(int i=n-1;i>=0;i--) #define fi first #define se second #define pb push_back #define sz(a) (int)a.size() #define vec(...) vector<__VA_ARGS__> #define _3HspL4A ios::sync_with_stdio(0),cin.tie(0) typedef long long ll; using pii=pair<int,int>; using vi=vec(int); void print(){cout<<"\n";} template<class T,class...E> void print(const T&v,const E&...u){cout<<v<<' ',print(u...);} // e signed main(){ _3HspL4A; int n,m; cin>>n>>m; vec(vi) adj(n); rep(i,m){ int u,v; cin>>u>>v; u-=1,v-=1; adj[u].pb(v); adj[v].pb(u); } vi usd(n,0); int now=0; auto dfs=[&](auto self,int v)->int{ usd[v]=1; pii p={0,0}; for(auto u:adj[v]){ if(!usd[u]){ int val=self(self,u); if(val>p.fi){ p.se=p.fi; p.fi=val; }else if(val>p.se){ p.se=val; } } } now=max(now,p.fi+p.se+1); return p.fi+1; }; int ans=0; rep(v,n)if(!usd[v]){ now=0; dfs(dfs,v); ans+=now; } print(ans); // 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...