Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題
私の誕生日にケーキパーティーをすることにしました。
パーティには私と友人が参加します。
何人かの友人は、ケーキを数切れずつ買ってきました。
しかし、ケーキの数の合計が、参加者の数でぴったり割りきれるかはわかりません。
ケーキを皆でできるだけ平等に分けたいので、次のようにルールを決めました。
ケーキはまず皆が同じ数になるように分けます。
その結果余りが出た場合は、パーティの主役である私が優先的に一切れもらうことにします。
私は何切れのケーキをもらえるでしょうか?
友人の数とケーキの情報が与えられたとき、私がもらえるケーキの数を求めるプログラムを作成せよ。
ただし、友人の数には私自身が入っていないことに注意せよ。
・入力される値
入力は以下の形式で与えられる。
1行目にパーティに参加している友人の数N (1≤N≤100)とケーキを持ってきた友人の数C (1≤C≤N)が与えられる。
続く1行に、ケーキを持ってきた友人のうち、i番目の友人が持ってきたケーキの数 pi (1≤pi≤100) が与えられる。
・期待する出力
私がもらえるケーキの数を1行に出力する。
僕が作成、提出したコードは、以下のとおりです。
/* Volume3_0382 Cake Party http://judge.u-aizu.ac.jp/ 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<stdio.h> int main(void){ int n,c; scanf("%d %d",&n,&c); int all=0; for(int i=0;i<c;i++){ int bring; scanf("%d",&bring); all+=bring; } n+=1; int ans=all/n; if(all%n==0){ printf("%d\n",ans); }else{ printf("%d\n",ans+1); } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/
Volume3_0382 Cake Party