AOJ 0138 - Track and Field Competition
単なる実装.少数の時はprintfを使うと書きやすい事に気づきました.
今回の場合は,精度が必要無いのでfloatでもよさそうですね.
#include <iostream> #include <algorithm> #include <cstdio> struct athlete{int num; double time;}; bool tsort(const athlete& l, const athlete& r){ return l.time < r.time; } int main(){ athlete a[3][8], f[3]; for(int i=0;i<3;i++){ for(int j=0;j<8;j++){ int num; double time; std::cin >> num >> time; a[i][j].num = num, a[i][j].time = time; } std::sort(a[i],a[i]+8,tsort); //3位を最終選考に回す. f[i] = a[i][2]; } //各組の1位と2位を表示 for(int i=0;i<3;i++){ printf("%d %.2lf\n",a[i][0].num,a[i][0].time); printf("%d %.2lf\n",a[i][1].num,a[i][1].time); } //各組の3位より上位2人を決勝へ. std::sort(f,f+3,tsort); printf("%d %.2lf\n",f[0].num,f[0].time); printf("%d %.2lf\n",f[1].num,f[1].time); }