baru003のブログ

baruの雑記兼備忘録

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;
}