トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

2006rb2.c

#include <stdio.h>
#include <stdlib.h> 

main()
{
	int n, m, e, h, p, q, i, j, now;
	// 2次元配列でクジを表現
	// kuji[縦棒の位置][横棒の位置]
	// 中にはどこに棒がのびているかを入れる
	char kuji[101][1001];
	
	while(1){
		scanf("%d %d %d", &n, &m, &e);
		if(n==0 && m==0 && e==0) break;
		
		// クジ初期化
		for(i=1; i<=n; i++){
			for(j=1; j<=1000; j++){
				// 0はどこにも棒がのびていないとする
				kuji[i][j]=0;
			}
		}
		
		// クジ作成
		for(i=0; i<m; i++){
			scanf("%d %d %d", &h, &p, &q);
			// 高さhの位置にpからq、qからpに棒がのびている
			kuji[p][h]=q;
			kuji[q][h]=p;
		}
		
		now=e; // 最初に確かめる縦棒の位置
		for(i=1000; i>0; i--){
			if(kuji[now][i]>0){ // 0以上だったら
				now=kuji[now][i]; // 縦棒を移動する
			}
		}
		// 最後までたどったら答が出る
		printf("%d\n", now);
	}
	
	return 0;
}