Submission #1160970

#TimeUsernameProblemLanguageResultExecution timeMemory
1160970achiCijanobakterije (COCI21_cijanobakterije)C++20
21 / 70
1093 ms7356 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<int>> graph; vector<int> links; int bfs (int u, int V, int id, vector<int> &comp) { queue<int> q; vector<int> visited(V); int curr = 1; int next = 0; int depth = 0; q.push(u); while (!q.empty()) { u = q.front(); q.pop(); comp[u] = id; curr--; if (visited[u]) continue; for (auto v : graph[u]) { if (visited[v]) continue; q.push(v); next++; } visited[u] = true; if (curr <= 0) { curr = next; next = 0; depth++; } } return depth; } int main () { cin.tie(0)->sync_with_stdio(0); int V, E; int u, v; int len = 0; int id = 0; cin >> V >> E; graph.resize(V); links.assign(V, 0); vector<int> comp_size(V); vector<int> comp(V, -1); for (int i = 0; i < E; i++) { cin >> u >> v; u--; v--; graph[u].push_back(v); graph[v].push_back(u); links[u]++; links[v]++; } for (int i = 0; i < V; i++) { if (links[i] > 1) continue; if (comp[i] != -1) comp_size[comp[i]] = max(comp_size[comp[i]], bfs(i, V, comp[i], comp)); else { comp_size[id] = bfs(i, V, id, comp); id++; } } for (int i = 0; i < id; i++) { len += comp_size[i]; } cout << len; 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...