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); } } }