AOJ0138 Track and Field Competition
問題リンク Track and Field Competition
- 解法
クラスTを作りました。Tは選手の番号とタイムを持ち、タイムの昇順にソートできるようにします。
8人で走る組が3つあるので各組についてタイムでソートします。
各組のトップ2は出力し、3,4位を別の配列tに突っ込んでおきます。tの大きさは6必要です。
更にtの要素をソートし、トップ2を出力します。
- ソース
import java.util.Arrays; import java.util.Scanner; //Track and Field Competition public class AOJ0138 { static class T implements Comparable<T>{ int id; double t; public T(int id, double t) { this.id = id; this.t = t; } public int compareTo(T o) { return t-o.t<0?-1:o.t-t<0?1:0; } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); T[][] r = new T[3][8]; for(int i=0;i<3;i++){ for(int j=0;j<8;j++)r[i][j]=new T(sc.nextInt(),sc.nextDouble()); Arrays.sort(r[i]); } T[] t = new T[6]; int x = 0; for(int i=0;i<3;i++){ System.out.printf("%d %.2f\n", r[i][0].id, r[i][0].t); System.out.printf("%d %.2f\n", r[i][1].id, r[i][1].t); t[x++] = r[i][2]; t[x++] = r[i][3]; } Arrays.sort(t); System.out.printf("%d %.2f\n", t[0].id, t[0].t); System.out.printf("%d %.2f\n", t[1].id, t[1].t); } }