当前位置: 代码迷 >> 综合 >> HDOJ 1034 Candy Sharing Game
  详细解决方案

HDOJ 1034 Candy Sharing Game

热度:70   发布时间:2023-10-21 18:22:33.0

HDACM 1034


题意:
一些学生围着老师坐成一圈,每个人手里有一些糖。
老师一吹哨子,学生就将糖分给右手边同学,分一半。
如果一个学生手里的糖为奇数,则老师给他一个额外的糖,凑成偶数。
问老师要吹多少次哨子能使得每个学生手里的糖数量相同。
输出吹哨次数与糖的数量。


import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()){int n = sc.nextInt();if (n==0) {break;}int candys[] = new int[n];for (int i = 0; i < candys.length; i++) {candys[i] = sc.nextInt();}int ans =0;while(true){int last = candys[n-1]/2;int cur = candys[0]/2;candys[0] = candys[0]-cur+last;if (candys[0]%2==1) {candys[0]++;}for (int i = 1; i < candys.length; i++) {last =cur;cur = candys[i]/2;candys[i] = candys[i]-cur+last;if (candys[i]%2==1) {candys[i]++;}}boolean ok = true;for (int i = 1; i < candys.length; i++) {if (candys[i-1]==candys[i]) {continue;}ok = false;break;}ans++;if (ok) {break;}}System.out.println(ans+" "+candys[0]);}sc.close();}
}


  相关解决方案