トップ 一覧 Farm 検索 ヘルプ RSS ログイン

2006rb1.cの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
 #include <stdio.h>
 #include <stdlib.h>
 
 // クジデータを読み込むための構造体
 typedef struct{
 	int h;
 	int p;
 	int q;
 } KUJI;
 
 /*--- 交換 ---*/
 void swap(KUJI *x, KUJI *y)
 {
 	KUJI  temp = *x;
 	*x = *y;
 	*y = temp;
 } 
 
 /*--- 配列dataの先頭n個のソート ---*/
 void sort(KUJI data[], int n)
 {
 	int  k = n - 1;
 	while (k >= 0){
 		int	 i, j;
 		for (i = 1, j = -1; i <= k; i++)
 			if (data[i - 1].h < data[i].h) {
 				j = i - 1;
 				swap(&data[i], &data[j]);
 			}
 		k = j;
 	}
 } 

 
 main()
 {
 	int n, m, e, h, p, q, i, j, k, now;
 	KUJI kuji[1001];
 	
 	while(1){
 		scanf("%d %d %d", &n, &m, &e);
 		if(n==0 && m==0 && e==0) break;
 		
 		// クジ初期化
 		for(i=1; i<=m; i++){
 			kuji[i].p=kuji[i].q=0;
 		}
 		
 		// クジ読み込み
 		for(i=0; i<m; i++){
 			scanf("%d %d %d", &h, &p, &q);
 			kuji[i].h=h;
 			kuji[i].p=p;
 			kuji[i].q=q;
 		}
 		// 高さの順番に並べ替え
 		sort(kuji, m);
 		
 		now=e;
 		for(i=0; i<m; i++){
 			// 今の縦棒の位置に横棒がのびてれば
 			if(kuji[i].p==now){
 				now=kuji[i].q;
 			}else if(kuji[i].q==now){
 				now=kuji[i].p;
 			}
 		}
 		printf("%d\n", now);
 	}
 	
 	
 	return 0;
 }