AOJ 0161
・問題リンク Sport Meet
・コメント
今回の問題文にはタイムの重複は無いと明示してあったので、そのままmapを使って実装しました。
・ソース
#include<iostream> #include<map> #include<string> using namespace std; int main() { long n; while(cin>>n){ if(n==0)break; map< long,string > list; for(long i=0;i<n;i++){ string c;//teamNumber long a1,b1,a2,b2,a3,b3,a4,b4; //input cin>>c>>a1>>b1>>a2>>b2>>a3>>b3>>a4>>b4; long min=a1+a2+a3+a4; long time=b1+b2+b3+b4; //min->sec while(min>0){ time+=60; min--; } //makeList list.insert( map< long,string >::value_type(time,c) ); } long cnt=0; for(map< long,string >::iterator it=list.begin();it!=list.end();it++){ if(cnt==0||cnt==1||(n-cnt)==2){ cout<<(*it).second<<endl; } cnt++; } } return 0; }