126272024-12-26 23:30:32BucsMateElágazás nélküli úton levő települések (50 pont)cpp17Hibás válasz 31/5028ms1664 KiB
#include <iostream>
#include <vector>

using namespace std;

void search_graph(int start, vector<vector<int>> &adj, bool visited[])
{
    int currNode = start;
    while(!visited[currNode]){
        visited[currNode] = true;
        if(adj[currNode].size() > 2){
            return;
        }
        for(int i = 0; i < adj[currNode].size(); i++){
            int newNode = adj[currNode][i];
            if(!visited[newNode]){
                currNode = newNode;
                break;
            }
        }
    }
}

int main()
{
    int N, M;
    cin >> N >> M;
    vector<vector<int>> adj(N+2, vector<int>());
    for(int i = 0; i < M; i++){
        int a, b;
        cin >> a >> b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }

    bool visited[10001] = {};
    for(int i = 1; i <= N; i++){
        if(adj[i].size() == 1){
            search_graph(i, adj, visited);
        }
    }

    vector<int> sol;
    for(int i = 1; i <= N; i++){
        if(visited[i] && adj[i].size() != 1){
            sol.push_back(i);
        }
    }
    cout << sol.size() << endl;
    for(int i = 0; i < sol.size(); i++){
        cout << sol[i] << " ";
    }
    cout << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base31/50
1Elfogadva0/01ms320 KiB
2Elfogadva0/028ms1664 KiB
3Hibás válasz0/21ms320 KiB
4Elfogadva2/21ms500 KiB
5Elfogadva2/21ms320 KiB
6Hibás válasz0/21ms320 KiB
7Elfogadva2/21ms320 KiB
8Elfogadva2/23ms320 KiB
9Elfogadva2/24ms568 KiB
10Elfogadva2/28ms816 KiB
11Elfogadva2/214ms936 KiB
12Elfogadva2/214ms1000 KiB
13Elfogadva3/32ms320 KiB
14Hibás válasz0/33ms572 KiB
15Hibás válasz0/34ms756 KiB
16Hibás válasz0/36ms696 KiB
17Hibás válasz0/312ms1016 KiB
18Hibás válasz0/313ms1000 KiB
19Elfogadva3/317ms1016 KiB
20Elfogadva3/328ms1592 KiB
21Elfogadva3/328ms1592 KiB
22Elfogadva3/328ms1592 KiB