/// Raihan Ruhin /// CSE, Jahangirnagar University. /// Dhaka-Bangladesh. /// id: raihanruhin (topcoder / codeforces / codechef / uva / uvalive / spoj), 3235 (lightoj) /// mail: raihanruhin@ (yahoo / gmail / facebook) /// blog: ruhinraihan.blogspot.com #include<bits/stdc++.h> using namespace std; #define SET(a) memset(a,-1,sizeof(a)) #define CLR(a) memset(a,0,sizeof(a)) #define PI acos(-1.0) #define MOD 1000000007 #define MX 100010 int mat[55][55]; void warshall(int n) { for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) mat[i][j]=min(mat[i][j], mat[i][k]+mat[k][j]); return; } int main() { ios_base::sync_with_stdio(0);cin.tie(0); int tc, kk=1, n, m; string s, s2; char ch; while(cin>>n>>m && n) { map<string, int>mp; int cnt=1; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) mat[i][j]=1e9; for(int i=0;i<m;i++) { cin>>s>>s2; if(mp.find(s)==mp.end()) mp[s]=cnt++; if(mp.find(s2)==mp.end()) mp[s2]=cnt++; mat[mp[s]][mp[s2]]=mat[mp[s2]][mp[s]]=1; } warshall(n); int mx=0; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) mx=max(mx, mat[i][j]); if(mx==1e9) cout<<"Network "<<kk++<<": DISCONNECTED\n\n"; else cout<<"Network "<<kk++<<": "<<mx<<"\n\n"; } return 0; }
Wednesday, 9 September 2015
UVA 1056 Degrees of Separation (UVALive 3569, World Finals >> 2006 - San Antonio)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment