AOJ 0138
問題リンク Track and Field Competition
・コメント
とてつもなく無駄なことをしています。
まず、printfを使えばよかったものを選手番号を始めにstring型で扱おうとしてしまった為に出力を分けて書くというとても汚い書き方になってしまいました。
書きなおすことも出来るのですがめんどくさかったし最初のやり方でやりたかったのでこんなことに・・(笑)
次気力があったら書き直したいですw
・ソース
#include<iostream> #include<map> #include<cstdio> using namespace std; int main() { map< double,string >list1,list2,list3,lista; string an[9]; double at[9]; double time; string num; int j=0; //first for(int i=1;i<=8;i++){ cin>>num>>time; list1.insert( map< double,string >::value_type(time,num) ); } map< double,string >::iterator it=list1.begin(); an[j]=(*it).second; at[j]=(*it).first; j++;it++; an[j]=(*it).second; at[j]=(*it).first; j++;it++; for(int k=0;k<6;k++){ lista.insert( map< double,string >::value_type((*it).first,(*it).second) ); it++; } //second for(int i=1;i<=8;i++){ cin>>num>>time; list2.insert( map< double,string >::value_type(time,num) ); } map< double,string >::iterator it1=list2.begin(); an[j]=(*it1).second; at[j]=(*it1).first; j++;it1++; an[j]=(*it1).second; at[j]=(*it1).first; j++;it1++; for(int k=0;k<6;k++){ lista.insert( map< double,string >::value_type((*it1).first,(*it1).second) ); it1++; } //third for(int i=1;i<=8;i++){ cin>>num>>time; list3.insert( map< double,string >::value_type(time,num) ); } map< double,string >::iterator it2=list3.begin(); an[j]=(*it2).second; at[j]=(*it2).first; j++;it2++; an[j]=(*it2).second; at[j]=(*it2).first; j++;it2++; for(int k=0;k<6;k++){ lista.insert( map< double,string >::value_type((*it2).first,(*it2).second) ); it2++; } //lista map< double,string >::iterator ita=lista.begin(); an[j]=(*ita).second; at[j]=(*ita).first; j++;ita++; an[j]=(*ita).second; at[j]=(*ita).first; j++;ita++; //answer for(int i=0;i<8;i++){ cout<<an[i]<<" "; printf("%.2f\n",at[i]); } return 0; }