CCCPaste

Untitled

#include 
#include 
#include 
using namespace std;
int main() {
   
    int n, b1, b2, poeni;
    cin >> n >> b1 >> b2 >> poeni;
    int kosta[b1];
    
    for(int i = 0; i < b1; i++) {
        cin >> kosta[i];
    }
    
    int kiril[b2];
    for(int i = 0; i < b2; i++) {
        cin >> kiril[i];
    }
    int m;
    cin >> m;
    vector graph[n + 10];
    for(int i = 0; i < m; i++) {
        int a, b;
        cin >> a >> b;
        graph[a].push_back(b);
        graph[b].push_back(a);
    }
    bool visited[n + 10];
    for(int i = 0; i <= n; i++) {
        visited[i] = false;
    }
    for(int i = 0; i < b2; i++) {
        visited[kiril[i]] = true;
    }
    queue q;
    for(int i = 0; i < b1; i++) {
        visited[kosta[i]] = true;
        q.push(kosta[i]);
    }
    int gradovi = 0;
    while (!q.empty()) {
        int teme = q.front();
        q.pop();
        for(int i = 0; i < graph[teme].size(); i++) {
            int sosed = graph[teme][i];
            if(!visited[sosed] and gradovi + 1 <= poeni) {
                visited[sosed] = true;
                q.push(sosed);
                gradovi++;
            }
        }
    }
    cout << gradovi << endl;
   return 0;
}