Advertisement
Josif_tepe

Untitled

Apr 21st, 2021
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include <iostream>
  2. #include<queue>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     int gradovi;
  9.     cin>>gradovi;
  10.     int b1;
  11.     cin>>b1;
  12.     int b2;
  13.     cin>>b2;
  14.     int p;
  15.     cin>>p;
  16.     int ko[b1];
  17.     int ki[b2];
  18.     int p1=0;
  19.  
  20.     vector<int>graph[gradovi+10];
  21.  
  22.     for(int i=0; i<b1; i++){
  23.         cin>>ko[i];
  24.     }
  25.     for(int i1=0; i1<b2; i1++){
  26.         cin>>ki[i1];
  27.     }
  28.  
  29.     int m;
  30.     cin>>m;
  31.     for(int k=0; k<m; k++){
  32.     int a,b;
  33.     cin>>a>>b;
  34.     graph[a].push_back(b);
  35.     graph[b].push_back(a);
  36.     }
  37.     queue<int>q;
  38.     for(int j=0; j<b1; j++){
  39.      q.push(ko[j]);
  40.     }
  41.     bool niza[gradovi+10];
  42.     for(int h=0; h<=gradovi; h++){
  43.         niza[h]=false;
  44.     }
  45.     for(int h1=0; h1<b2; h1++){
  46.         int p=ki[h1];
  47.         niza[p]=true;
  48.     }
  49.     for(int h2=0; h2<b1; h2++){
  50.         int p1=ko[h2];
  51.         niza[p1]=true;
  52.     }
  53.     while(!q.empty()){
  54.     int c=q.front();
  55.     q.pop();
  56.     for(int u=0; u<graph[c].size(); u++){
  57.     int cc=graph[c][u];
  58.     if(niza[cc]==false){
  59.     q.push(cc);
  60.     niza[cc]=true;
  61.     p1+=1;
  62.     }
  63.     }
  64.     }
  65.    if(p1>p){
  66.     p1=p;
  67.    }
  68.   cout<<p1;
  69.  
  70.     return 0;
  71. }
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement