被験者がより大きく、小さくする事と等価であり、 M 数は、N- / 2の数を超えない処理の数があること、またはそれを変更したときに、 M 、または修飾されていない、この貪欲に従って完了されます。
1つの#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 の#defineは長い長いっ 4のLL N、M、K、Y、ANS、[ 200001 ]。 5 INT メイン(){ 6 のscanf(" %のLLDの%のLLD "、&N、&M)。 7 ためには(int型 i = 1 ; iが<= N; iが++)のscanf(" %のLLD "、および[I])。 8 ソート(A + 1、+ N + 1 )。 9 、K = N / 2 + 1 。 10 Y = 0x3f3f3f3f 。 11 のためには、(int型 i = 1 ; iは<N =、iは++ ) 12 であれば(([I] == M)&&(ABS(YK)> ABS(KI)))、Y = I。 13 であれば(Y == 0x3f3f3f3f ){ 14 [N + 1 ] = 0x3f3f3f3f 。 15 のためには、(int型私= 0 ; iは<N =、iは++ ) 16 であれば(([I] <M)&&([I + 1 ]> M)) 17 であれば(I> = K)Y = I + 1 。 18 他 Y = I。 19 } 20 のための(int型 I = kは、iがyと<; I ++)はANS + = ABS([I] - M)。 21 のために(int型 iはY + = 1 ; iが= Kを<; I ++)はANS + = ABS([I] - M)。 22 のprintf(" %のLLD " 、ANS)。 23 リターン 0 ; 24 }