// 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