Dwikと弟サミル両方がインドの有名大学から奨学金を受けました。彼らの父、Besherは、それらのそれぞれにいくつかのお金を送りたいです。
Besherを有する N 、コインを I 番目の コインの値を有する Iを。彼は、彼の二人の息子の間にこれらのコインを配布する n個の 手順を実行します。では I 番目の ステップ、彼が与えるかどうかを選択した I 番目の Dwikやサミールにコインを。
みましょう のx iの 後Dwikのとサミルのコインの合計との間の絶対差である I 番目の ステップ。分布の不公平な要因である 最大({ X 1、 X 2、···、 XのN })。Besherは不公平要因を最小限に抑えるために望んでいる、あなたは彼を助けることができますか?
入力の最初の行は、単一の整数から成る T、テストケースの数。各テストケースは、2行で構成されています。
最初の行は、整数含ま N (1≤ N ≤100)を。
2行目は含まれて 、n個の 整数 1、 2、...、 N (≤1 I ≤100)。
プリント Tの 行は、 iが番目 に答え単一整数を含む行を I 番目の テストケースを。
2
5
1 2 1 4 3
7
4 5 6 1 1 3 4
2
5
最初のサンプル試験では、besherを有する 5枚のコイン(1、2、1、4、3)、彼は次のようにそれらを配布することができました:
ステップ1:、dwikする最初の硬貨を与え 、D 、= 1 、S = 0 、X = 1 | 1 - 0のを| = 1
サミル第2コインを与える:ステップ2 日間 = 1、 S = 2 、X 2 = | 1 - 2 | = 1
サミル第3コインを与え、ステップ3 日間 = 1、 S = 3 、X 3 = | 1 - 3 | = 2
ステップ4:dwik第4コイン与える D 、= 5 、S = 3 、X = 4 | 5から3を| = 2
サミル第5コインを与える:ステップ5 日間 = 5、 S = 6 、X 5 = | 5から6 | = 1
マックス({ X 1、 X 2、 X 3、 X 4、 X 5})= 2
問題の意味:Nコイン点に、最終値に流通過程における最大差をとる終了点後の2人、コインの現在の数との差として、Bの1分間に1枚のコイン、B。すべての割り当て方法は、最終番号の最小値はQ.
ソリューション:データの量、暴力にそれぞれ割り当て方法を検索し、最大の違いは、最低重量を取って、それぞれの割り当て方法のために決定されます
#include <iostreamの> する#include <アルゴリズム> する#include < 文字列・H> の#include < ストリング > の#include <ベクトル> の#include <スタック> の#include <math.h>の に#define MOD 998244353 の#define LL長い長 の#define MAX 0x3f3f3f3f 使用して 名前空間はstd; int型 P [ 105 ]。 int型nは、トン、MX。 ボイド DFS(int型、int型 B、int型、kはint型になりました) { もし(K> = N-)// 状態を標的とする、部分的更新処理硬貨の最大差 { MX = 今; リターン; } IF(今> = MX)// それがコイン点の一種の最大差分値以上である場合点について大きな戻り、 { リターン; } そうでなければ { IF(今> ABS(AB&最大))// 現在の差分更新 今= ABS(AB& )を、 DFS(A + P [K]、B、 + K 1 、今)、 DFS(A、B + P [K]、K + 1 、今); } } int型(メイン) { CIN >> T; 一方(T-- ) { MX = 99999 ; CIN >> N-; のための(int型 I = 0 ; I <N-Iが++ ) CIN >> P [I]、 DFS(P [ 0 ]、0、1、0); // 同じで誰乏しい与える最初 COUT << MX << ENDL; } }