제출 #666998

#제출 시각아이디문제언어결과실행 시간메모리
666998KenparCijanobakterije (COCI21_cijanobakterije)C++17
70 / 70
52 ms14156 KiB
#include "bits/stdc++.h" using namespace std; #define ll long long #define endl '\n' const ll MOD = 1e9+7; const ll INF = 1e18; const ll MAX = 1e5; vector<vector<int>> edges(MAX); vector<bool> visited(MAX, false); stack<int> recVisited; int getLengthChild(int cur){ if(visited[cur]) return 0; visited[cur] = true; int ans = 0; for(int tar : edges[cur]){ ans = max(ans, getLengthChild(tar)); } return ans+1; } pair<int,int> getFurthest(int cur, int deg){ if(visited[cur]){ return {-1,-1}; } visited[cur] = true; recVisited.push(cur); pair<int,int> ans = {cur, deg}; for(int tar : edges[cur]){ pair<int,int> furth = getFurthest(tar, deg+1); if(furth.second > ans.second) ans = furth; } return ans; } void solve(){ int n,m; cin>>n>>m; for(int i = 0; i < m; i++){ int a,b; cin>>a>>b; a--,b--; edges[a].push_back(b); edges[b].push_back(a); } vector<int> ans; for(int i = 0; i < n; i++){ if(!visited[i]){ int furth = getFurthest(i, 0).first; while(!recVisited.empty()){ visited[recVisited.top()] = false; recVisited.pop(); } ans.push_back(getLengthChild(furth)); } } int sum = 0; for(int a : ans) sum+=a; cout<<sum; } int main() { cin.tie(NULL); ios::sync_with_stdio(NULL); int t = 1; //cin>>t; int temp = t; while(t--){ //cout<<"Case #"<<temp - t<<" > "<<endl; solve(); cout<<endl; } }

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'int main()':
Main.cpp:90:9: warning: unused variable 'temp' [-Wunused-variable]
   90 |     int temp = t;
      |         ^~~~
#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...