1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<iostream>
#include<vector>
int main() {
    using namespace std;
    ios_base::sync_with_stdio(0);
    long liczba_miast, liczba_drog, liczba_drog_do_innych_miast_S_z_kazdego_miasta_S;
    cin >> liczba_miast >> liczba_drog >> liczba_drog_do_innych_miast_S_z_kazdego_miasta_S;

    long droga_laczy_miasto_A, droga_laczy_miasto_B;
    vector<long> sprawdzam(liczba_miast+1);

    for (long i = 0; i < liczba_drog; i++) {
        cin >> droga_laczy_miasto_A >> droga_laczy_miasto_B;
        sprawdzam[droga_laczy_miasto_A] += droga_laczy_miasto_A;
        sprawdzam[droga_laczy_miasto_B] += droga_laczy_miasto_B;
    }
    long skomunikatowane_miasta = 0;
    long jakie_miasta[200000] = {};
    const long wstaw = liczba_drog_do_innych_miast_S_z_kazdego_miasta_S-1;
    for (long i = 1, j = 0; i < liczba_miast+1; i++)
        if (sprawdzam[i] > i*wstaw) {
            skomunikatowane_miasta++;
            jakie_miasta[j] = i;
            j++;
        }
    if (skomunikatowane_miasta <= 1)
        cout << "NIE";
    else { cout << skomunikatowane_miasta << endl;
        for (long i = 0; jakie_miasta[i] != 0; i++)
            cout << jakie_miasta[i] << ' ';
    }
}