2001-Amida, the City of Miracle

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=2001&lang=jp
考え方
入力を高さの大きい順に並び替え、入力通りに交換していく。
実装(Java)

import java.util.*;

public class Main{
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		int n,m,s1,s2,a,h;
		for(;;){
			n=scanner.nextInt();if(n==0)break;
			int data[]=new int[n];
			for(int i=0;i<n;i++)data[i]=i;
			m=scanner.nextInt();a=scanner.nextInt()-1;
			long input[]=new long[m];
			for(int i=0;i<m;i++){
				h=scanner.nextInt();s1=scanner.nextInt()-1;s2=scanner.nextInt()-1;
				input[i]=h*100*100+s1*100+s2;
			}
			Arrays.sort(input);
			for(int i=m-1;i>=0;i--){
				int t=data[(int)((input[i]/100)%100)];data[(int) ((input[i]/100)%100)]=data[(int) (input[i]%100)];data[(int) (input[i]%100)]=t;
			}
			for(int i=0;i<n;i++)if(data[i]==a)System.out.println(i+1);
		}
	}
}