SDNU 1094.Clock(水問題)

説明

時針と分針:両手でのアナログ時計があります。両手は角度を形成します。角度は、両手の間の最小角度として測定されます。両手の間の角度は、0以上かつ未満又は180度に等しい尺度を有します。
MM、hhは2つの完全な時間を表す数字(00 <= HH <= 23)、mmは分を表す2桁の数字(00 <= MM <= 59)、あなたされている:フォーマットHHで記述された5つの別個の時間のシーケンス所与中央値を見つけるプログラムを書くことであり、それは、それらの関連する角度の非減少順にソートされた時間の順序の3番目の要素です。ネクタイは早い時間が遅い時間の前に、このような方法で分割されます。
たとえば、あなたが時間のシーケンス(6:05、7時10分、3時、21時00分、12時55分)に与えられているとします。ソート順序は(12:55、3時、21時00分、6時05分、7時10分)ですので、あなたは21時00分を報告しています。

入力

入力は、Tテストケースから構成されています。テストケースの数(T)は、入力ファイルの最初の行に与えられています。各テストケースは、単一の時間がフォーマットHHに与えられている5つの別個の時間のシーケンスを含む行、に与えられる:MMおよび単一スペースによって分離されています。

出力

各テストケースのために、正確に1行を印刷します。与えられた時間のMM:行の形式は、HHで中央値が含まれていることです。以下に、3つのテストケースのためのサンプル入力及び出力を示します。

サンプル入力

3 
0時00分1時午前2時00分3時午前4時00分
6時05分午前7時10午前3時21時00分12時55分
午後1時05分午後02時05 15時05 11時05分12時05分

サンプル出力

2時00 
午後9時
14:05

ソース

 
アイデア:式を知って初めて:(角度)= | H * 30 - メートル* 5.5 |
#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、

#defineは長い長いっ
 の#define EPS 1E-9 のconst int型 INF = 0x3f3f3f3f const int型 MOD = 1E9 + 7 const int型 MAXN = 8000 + 8 int型のトン。構造体ノード
{ int型のH、M。
    二重の角度; 
    ノード():角度(0 ){} 
} TI [ 8 ]。ブールCMP(ノードA、ノードB)
{ 場合(a.angle ==

   




    


    b.angle)
         リターンああ< BH。
    それ以外の 場合(a.angle == b.angle &&ああ== BH)
         戻り午前< BM。
    返す a.angle < b.angle。
} 

int型のmain()
{ 
    (CIN >> T; t-- ;)
    { 
        ためint型 I = 0 ; iが< 5 ; iが++ 
        { 
            scanf関数(" %のDた:%d "、&​​TI [I]・H、 &TI [I] .M)。
            TI [I] .angle =ファブ((TI [I]・H%12)*30 - 5.5 *(TI [I] .M%60 ))。
            一方、(TI [I] .angle> 180)TI [I] .angle =ファブ(360 - TI [I] .angle)。
        } 
        ソート(TI、TI + 5 、CMP)。
        もし(TI [ 2 ]・H < 10 
            のprintf(" 0%D:"、TI [ 2 ]・H)。
        
            のprintf(" %のD:"、TI [ 2 ]・H)。
        もし(TI [ 2 ] .M < 10
            のprintf(" 0%Dを\ n "、TI [ 2 ] .M)。
        
             のprintf(" %d個の\ n "、TI [ 2 ] .M)。
    } 

    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/RootVount/p/11448252.html