CC分糖果
阿新 • • 發佈:2018-12-21
題目描述
CC有一天當了幼兒園的老師,常常會給一些小孩糖果,她每次買的糖果數正好能分均勻,但是CC的視力不太好常常會分錯,於是CC讓小孩子們自己去分均勻,傳糖果的規則是1號只能給2號,n號只能給n-1號,其餘的兩邊都可以傳,小孩子們也嫌麻煩,你能幫他們計算出傳的最少次數嗎 輸入 第一行,輸入一個n 下面n個數代表每個孩子初始的糖果數 輸出 輸出最少的傳遞糖果次數
分析:
其實,我們只需要先求出平均數,然後依次判斷每一個數,如果當前數大於平均數,則將,多餘給後面,反之,讓後面將給前面。
#include"stdio.h" int main() { int n,a[1000]; int ave,i,j,m=0; while(~scanf("%d",&n)) { ave=0;m=0; for(i=0;i<n;i++) { scanf("%d",&a[i]); ave=ave+a[i]; } ave=ave/n; for(i=0;i<n;i++) { if(a[i]>ave) { a[i+1]=a[i+1]+a[i]-ave; a[i]=ave; m++; } else if(a[i]<ave) { a[i+1]=a[i+1]-(ave-a[i]); a[i]=ave; m++; } } printf("%d\n",m); } }