ここでも洛谷CF1234Aイコライズ価格
タイトル説明
あなたは、両方のショップキーパーと小さな近くのお店で店員です。あなたが持っているn個のn財、私は、私は * **私はコインを* a_iを良いコストを目。
顧客がそれを求めるときには、このようにあなたの人生を簡素化することを決定し、各製品の価格を覚えるのに疲れました。より正確には、あなたは、すべてのnに対して同じ価格を設定することを決めたのnあなたが持っている商品。
しかし、あなたは新しい価格の合計が、初期の価格の合計よりも小さくないような方法で価格を選びたいので、お金を失いたくありません。それはあなたがすべてのn個販売している場合ことを意味nは新しい価格のための商品をあなたが彼らの初期の価格のためにそれらを販売しているかのように、あなたがお金の少なくとも同じ(またはそれ以上)の金額を受け取ることになります。
一方、あなたはとてもあなたが最低限のいずれかを選択する必要があります選択することができ、全ての価格の間であるため、大きな価格の顧客を失いたくありません。
だから、すべてのnの最小の可能な同等の価格を見つける必要があるのnあなたがこの価格のためにそれらを販売している場合、あなたは彼らの初期の価格のためにそれらを販売しているかのように、あなたがお金の少なくとも同じ(またはそれ以上)の金額を受け取ることになりますので、商品を。
あなたは、Q答える必要がQの独立したクエリを。
入力形式
入力の最初の行は1つの整数のQ含まQ(1つの\ルQ \ル1001≤ Qクエリの数を- ≤100)。その後のq のqクエリが続きます。
クエリの最初の行は、一つの整数N含有N(1個の\ルN \ル100)1≤ N商品の数を- ≤100)。クエリの2行目は含まれn個のnの整数はA_N、A_2、\ドット、A_1 、1 2、...、* **のn *(1 \ルa_iを\ル10 ^71≤ I ≤107)、どこa_iを私は私の価格です、私は良い目。
出力フォーマット
各クエリについて、それのために答えを印刷する-すべてのnの最小可能等しい価格N品を使用すると、この価格のためにそれらを販売している場合、あなたが彼らのためにそれらを販売するかのように、あなたがお金の少なくとも同じ(またはそれ以上)の金額を受け取ることになりますので、初期価格。
サンプル入力と出力
入力#1コピー
出力#1コピー
問題の意味の翻訳:
(巨大な男@littlesevenから著作権)
ソリューション:
我々は値を割り当てられた商品のすべての持っている、と彼らはより大きく、これらの値をしたいか、列と、元の数に等しいので。答えは、最小限のメンテナンスを必要とし、それは列と元の数と同じでなければなりません。
ただ、お金は小数点以下を持つことができるならば、答えは全体のシーケンスの平均値でなければならない、と思います。
が小数ではなく、しかし、C ++の分割は切り捨て。確かに割り切れる場合は、直接出力プロバイダ、またはビジネスの出力を高めるために:だから我々は1つの部門の裁判官の後に行われることがあります。
これは、複雑な説明タイトル(面白い)このパスされています。
コード:
#include<cstdio>
#define ll long long
using namespace std;
ll t,sum,n;
int main()
{
scanf("%lld",&t);
while(t--)
{
sum=0;
scanf("%lld",&n);
for(int i=1;i<=n;i++)
{
ll x;
scanf("%lld",&x);
sum+=x;
}
int t=sum/n;
if(t*n==sum)
printf("%d\n",t);
else
printf("%d\n",t+1);
}
return 0;
}