/* ID:chenjiong PROG:concom LANG:C++ */ #include <stdio.h> #include <string.h> const int MAXN = 101; int map[MAXN][MAXN]; bool con[MAXN][MAXN]; int E; bool flag; int cal() { int i,j; int sum = 0; for ( i = 0; i < MAXN; i++) for ( j = 0; j < MAXN; j++) if ( con[i][j] ) sum += 1; return sum; } void init() { flag = true; memset(map,0,sizeof(map)); int i,j,v; scanf("%d",&E); while ( E-- ) { scanf("%d%d%d",&i,&j,&v); map[i][j] = v; } } void solve() { int i,j,k; memset(con,0,sizeof(con)); for ( i = 0; i < MAXN; i++) con[i][i] = true; for ( i = 0; i < MAXN; i++) for ( j = 0; j < MAXN; j++) if ( map[i][j] > 50 ) con[i][j] = true; int pre = cal(); while ( true) { for ( i = 0; i < MAXN; i++) { for ( j = 0; j < MAXN; j++) { int sum = 0; for ( k = 0; k < MAXN; k++) { if ( con[i][k] ) sum += map[k][j]; } if ( sum > 50 ) con[i][j] = true; } } if ( pre == cal() ) break; else pre = cal(); } } void print() { int i,j; for ( i = 0; i < MAXN; i++) { for ( j = 0; j < MAXN; j++) { if ( con[i][j] && i != j ) printf("%d %d\n",i,j); } } } int main() { freopen("concom.in","r",stdin); freopen("concom.out","w",stdout); init(); solve(); print(); return 0; }