Submission #1143157

#TimeUsernameProblemLanguageResultExecution timeMemory
1143157iancu007Triumphal arch (POI13_luk)C++20
0 / 100
151 ms17432 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

void dfs(int node, int color, vector<vector<int>>& graph, vector<bool>& visited, vector<int>& counts) {
    visited[node] = true;
    counts[color]++;
    for (int neighbor : graph[node]) {
        if (!visited[neighbor]) {
            dfs(neighbor, 1 - color, graph, visited, counts);
        }
    }
}

int main() {
    int n;
    cin >> n;

    vector<vector<int>> graph(n + 1);

    // Citirea drumurilor
    for (int i = 0; i < n - 1; i++) {
        int a, b;
        cin >> a >> b;
        graph[a].push_back(b);
        graph[b].push_back(a);
    }

    vector<bool> visited(n + 1, false);
    vector<int> counts(2, 0); // counts[0] -> noduri albe, counts[1] -> noduri negre

    // Pornim DFS de la nodul 1 (capitala)
    dfs(1, 0, graph, visited, counts);

    // Răspunsul este minimul dintre nodurile de culoare 0 și 1
    cout << min(counts[0], counts[1]) << endl;

    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...
#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...