Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. int node,edge;
  4. bool vis[30][30];
  5. int graph[30][30];
  6. void init(){
  7. for(int i=0;i<30;i++){
  8. for(int j=0;j<30;j++){
  9. vis[i][j] = false;
  10. }
  11. }
  12. }
  13. int dfs(int node){
  14. int ans = 0;
  15. for(int i=0;i<30;i++){
  16. if(graph[node][i]==1 && vis[node][i]==false){
  17. vis[node][i] = true;
  18. vis[i][node] = true;
  19. ans = max(1+dfs(i),ans);
  20. vis[node][i]==false;
  21. vis[i][node]==false;
  22. }
  23.  
  24. }
  25. return ans;
  26.  
  27. }
  28.  
  29. int main(){
  30. while(1) {
  31. cin >> node >> edge;
  32. if(node==0 && edge==0)break;
  33. for (int i = 0; i < 30; i++) {
  34. for (int j = 0; j < 30; j++) {
  35. graph[i][j] = 0;
  36. }
  37. }
  38.  
  39. for (int i = 0; i < edge; i++) {
  40. int x, y;
  41. cin >> x >> y;
  42. graph[x][y] = 1;
  43. graph[y][x] = 1;
  44. }
  45. int length = 0;
  46. for (int i = 0; i < node; i++) {
  47. init();
  48. length = max(dfs(i), length);
  49. }
  50. cout << length << NL;
  51.  
  52. }
  53.  
  54.  
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement