非空の文字列のセグメントにN M長い配列:問題の意味。式と最大を作ります。
そして、サフィックスを求め、式に対応するタイトルは、mおよびサフィックスの和から選択します。前記和[1]は必須です。
constのダブル EPS = 1E- 8 ; typedef 長い 長いLON。 typedefの符号なしの長い 長いULL。 typedefのペア < int型、int型 > PII。 CONST経度SZ = 300010、SSZ = SZ * SZ、APB = 4、1 = 1 。 constの経度INF = 0x3f3f3f3f = MOD、十億七。 LONのN、M、ARR [SZ]和[SZ]。 無効のinit() { CIN >> N >> Mと、 以下のために(int型 I = 1 ; I <= N; ++ I)CIN >> ARR [I]。 以下のための(int型I = N; I> = 1 ; - I) { 和[I] =和[I + 1 ] + ARR [I]。 } 経度RES =和[ 1 ]。 ソート(和 + 2、和+ 1個の + N)。 以下のために(int型 I = N(N-I + 1)<= M- 1 ; - I) { RES + = 和[I]。 } COUT << RES << ENDL。 } ボイドワーク() { } ボイド放出() { } INT メイン() { のstd :: IOS :: sync_with_stdio(0 )。 // freopenは( "D:\\ 1.TXT"、 "R"、STDIN)。 経度casenum。 // cinを>> casenum。 // coutの<< casenum <<てendl; // のための(LONティム= 1;ティム<= casenum; ++ TIM) // のための(LONティム= 1; CIN >> N; ++ TIM) { // COUT << "ケース#" <<ティム< < ":"; 初期化(); 作業(); リリース(); } 戻り 0 。 }