洛谷题解 P1168 【中位数】

この問題を解決するために、私はそれは不確実性が、書くために、その後中間の一般的な方法で解決されて入れながら起因する不確実な入力にテストデータのいくつかのセットを使用することができ、と思います。それは、0が終わりを表しブレーク終了する場合、最初に番号を入力します。そうでない場合は、次のステップ。パリティビットの数を求める方法は同じではないので、パリティを直接入力して決定されます。次の行の後、中間の番号を直接決定、ソートのソートフラッシュすることにより、(BOOL Iは、実際には、また、intの代わりに使用することができ、使用される奇数、偶数は0、すなわちS = N%2です)。

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
INT のmain()
{ 
    int型のn = 1、[ 10001 ]、C [ 10001 ]、ZW、J = 0 BOOL 秒;
    一方、1// 重复
    { 
        J ++ 
        cinを >> N;
        もし(N == 0 
        {    
            J - 破ります; 
        } 
        もし、(N%2 ==0// パリティ決定
        { 
            ZW = N / 2 ; 
            S = falseに; 
        } 
        そうでなければ
        { 
            ZW = N / 2 +を1 ; 
            S = trueに; 
        } 
        ためint型私は= 1 ; I <= N; Iは++ 
        { 
            CIN > > A [I]; 
        } 
        ソート(A + 1、A + 1 + N-); // ソート
        する場合(S == trueに)C [J] [ZWを] =; //は中央値を見つけ、テストデータの複数のセットので、アレイよう!
         C [J] =([ZW] + [ZW + 1 ])/ 2 ; 
    } 
    ためINT I = 1 ; I ++;私は= J <)COUTが<< Cは、[I] << ENDL;
     戻り 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/O52LuoTianYi/p/11388081.html