Advertisement
anhkiet2507

Lost Teach

Jun 21st, 2022
1,708
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n,m;
  4. int tplt[1005];
  5. vector<int> adj[1005];
  6. vector<int> part[1005];
  7. bool xuatphat[1005];
  8. bool chuaxet[1005];
  9. int cnt = 0, stt=0;
  10. vector<int> res;
  11. void init(){
  12.     cin >> n >> m;
  13.     memset(xuatphat,false,sizeof(xuatphat));
  14.     memset(chuaxet,true,sizeof(chuaxet));
  15.     for(int i = 1; i<=m; i++){
  16.         int t1, t2; cin >> t1 >> t2;
  17.         adj[t1].push_back(t2);
  18.         adj[t2].push_back(t1);
  19.         xuatphat[t1] = true;
  20.     }
  21. }
  22. void DFS(int u){
  23.     tplt[u] = stt;
  24.     part[stt].push_back(u);
  25.     chuaxet[u] = false;
  26.     for(int x : adj[u]){
  27.         if(chuaxet[x]){
  28.             DFS(x);
  29.         }
  30.     }
  31. }
  32. void DemTPLT(){
  33.     for(int i = 1; i<=n; i++){
  34.         if(chuaxet[i]){
  35.             stt++;
  36.             DFS(i);
  37.         }
  38.     }
  39. }
  40. void solve(){
  41.     for(int i = 1; i <= stt; i++){
  42.         if(part[i].size()==1){
  43.             cout << part[i][0] << " ";
  44.         }else{
  45.             int res = 0, adjres=0;
  46.             for(auto it:part[i]){
  47.                 if(adjres < adj[it].size()){
  48.                     adjres = adj[it].size();
  49.                     res = it;
  50.                 }
  51.             }
  52.             cout << res << " ";
  53.         }
  54.    
  55.     }
  56. }
  57. int main(){
  58.     init();
  59.     DemTPLT();
  60.     solve();
  61.     cout << "Lost Teach" << endl;
  62. }
  63.  
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement