Codeforces Unknown Language Round #1 I "Sort the Table "

問題:http://codeforces.com/contest/64/problem/I

参加形式:本番

カラム名,ソートするカラム名と昇順降順の指定およびテーブルが与えられる.ソートするカラム名と昇順降順の規則にしたがってソートした結果を求める.

lsortを使ってソートするだけ.-indexでその位置の値でソートする.

コード

set a [split [gets stdin]]
set rules [split [gets stdin] ,]
while {[gets stdin line]>0} {
	lappend li $line
}
set rules [lreverse $rules]
foreach {line} $rules {
	scan $line {%s %s} col order
	set li [lsort [expr ("$order"=="ASC"?"-increasing":"-decreasing")] -index [lsearch $a $col] $li]
}
puts [join $li \n]