// UVa 11749 - Poor Trade Advisor #include <iostream> #include <vector> #include <string.h> #include <stdio.h> #include <limits.h> using namespace std; #define longint signed long long bool yet[501]; int lnk[501][501]; int c; void dfs(int i) { c++; yet[i] = false; for (int j = 1; j <= lnk[i][0]; j++) if (yet[lnk[i][j]]) dfs(lnk[i][j]); } int main() { int n; longint m; cin >> n >> m; while (n || m) { int roads[250000][2]; int roads_size = 0; longint greatest_ppa = LONG_MIN; for (; m > 0; m--) { int a, b; longint ppa; cin >> a >> b >> ppa; if (ppa == greatest_ppa) { roads[roads_size][0] = a; roads[roads_size++][1] = b; } else if (ppa > greatest_ppa) { greatest_ppa = ppa; roads_size = 1; roads[0][0] = a; roads[0][1] = b; } } for (int i = 1; i <= n; i++) lnk[i][0] = 0; for (int i = 0; i < roads_size; i++) { int a = roads[i][0]; int b = roads[i][1]; lnk[a][++lnk[a][0]] = b; lnk[b][++lnk[b][0]] = a; } memset(yet, true, sizeof(yet)); int max = 1; for (int i = 1; i <= n; i++) { if (yet[i]) { c = 0; dfs(i); if (c > max) max = c; } } cout << max << endl; cin >> n >> m; } return 0; }
Monday, April 25, 2016
UVa 11749 - Poor Trade Advisor
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment