Submission #1161054

#TimeUsernameProblemLanguageResultExecution timeMemory
1161054achiCijanobakterije (COCI21_cijanobakterije)C++20
70 / 70
23 ms6796 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<int>> graph; vector<int> visited; vector<int> visited2; queue<int> q; int bfs (int u, int V) { int curr = 1; int next = 0; int depth = 0; q.push(u); while (!q.empty()) { u = q.front(); q.pop(); 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 bfs2 (int u, int V) { int curr = 1; int next = 0; int depth = 0; q.push(u); while (!q.empty()) { u = q.front(); q.pop(); curr--; if (visited2[u]) continue; for (auto v : graph[u]) { if (visited2[v]) continue; q.push(v); next++; } visited2[u] = true; if (curr <= 0) { curr = next; next = 0; depth++; } } return u; } 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); visited.assign(V, false); visited2.assign(V, false); for (int i = 0; i < E; i++) { cin >> u >> v; u--; v--; graph[u].push_back(v); graph[v].push_back(u); } for (int i = 0; i < V; i++) { if (visited[i]) continue; len += bfs(bfs2(i, V), V); } 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...