Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- int node,edge;
- bool vis[30][30];
- int graph[30][30];
- void init(){
- for(int i=0;i<30;i++){
- for(int j=0;j<30;j++){
- vis[i][j] = false;
- }
- }
- }
- int dfs(int node){
- int ans = 0;
- for(int i=0;i<30;i++){
- if(graph[node][i]==1 && vis[node][i]==false){
- vis[node][i] = true;
- vis[i][node] = true;
- ans = max(1+dfs(i),ans);
- vis[node][i]==false;
- vis[i][node]==false;
- }
- }
- return ans;
- }
- int main(){
- while(1) {
- cin >> node >> edge;
- if(node==0 && edge==0)break;
- for (int i = 0; i < 30; i++) {
- for (int j = 0; j < 30; j++) {
- graph[i][j] = 0;
- }
- }
- for (int i = 0; i < edge; i++) {
- int x, y;
- cin >> x >> y;
- graph[x][y] = 1;
- graph[y][x] = 1;
- }
- int length = 0;
- for (int i = 0; i < node; i++) {
- init();
- length = max(dfs(i), length);
- }
- cout << length << NL;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement