分发糖果

一些学生围绕老是坐着,每人手里都有偶数个糖。现在老师吹一声哨子,所有同学同时将自己的一半糖果给他右边的同学,如果某个同学手里的糖果个数是奇数,则老师给他一个糖果,重复这个过程直到所有同学手中的糖果数一致。

写一个程序判断老师要吹多少下哨子,每人手中的糖果数才能一致,并给出结束后每人手里的糖果数。

程序:

#include<iostream>

#include<cstdio>

#include<cstring>

#include<string>

#include<cstdlib>

#include<cmath>

#include<algorithm>

using namespace std;

int a[100000],n,ans=0,sum=0,p,q;

bool eq(int k)

{

int i=1;

while(i<n&&a[i]==a[i+1])

i++;

if(i==n)

return true;

return false;

}

void check()

{

while(!eq(n))

{

ans++;//{吹哨子数增加一次}

q=a[n];

for(int i=1;i<=n;i++)

{

p=a[i];

a[i]=a[i]/2+q/2;

q=p;

if(a[i]%2!=0)

sum++,a[i]++;

}

}//{如果是奇数,老师再给一个,并计数}

}

int main()

{

scanf("%d",&n);

for(int i=1;i<=n;i++)

{

scanf("%d",&a[i]);

sum=sum+a[i];

}

printf("%d %d",ans,sum/n);

return 0;

}

时间: 2024-10-10 05:21:03

分发糖果的相关文章

leetcode(135)分发糖果

分发糖果 解题思路:贪心算法.两次遍历 class Solution { public int candy(int[] ratings) { int len = ratings.length; if(len==0){ return 0; } int[] cands = new int[len]; for(int i=0;i<len;i++){ cands[i] = 1; } for(int i=0;i<len-1;i++){ if(ratings[i+1]>ratings[i]&

【LeetCode】分发糖果系列问题(I、II、III)

(一)分糖果 题目(Easy): 575. 分糖果 题目描述: 给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果.你需要把这些糖果平均分给一个弟弟和一个妹妹.返回妹妹可以获得的最大糖果的种类数. 示例 : 输入: candies = [1,1,2,2,3,3] 输出: 3 解析: 一共有三种种类的糖果,每一种都有两个. 最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3].这样使妹妹获得糖果的种类数最多. 解题思路: ??本题比较简单,实际上就是将n个

LeetCode.1103-向人们分发糖果(Distribute Candies to People)

这是小川的第393次更新,第425篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第256题(顺位题号是1103).我们通过以下方式向一排n = num_people个人分发一些糖果: 给第一个人送1个糖果,给第二个人送2个糖果,依此类推,直到我们给最后一个人送糖果.然后,我们回到行的开头,向第一个人提供n + 1个糖果,向第二个人提供n + 2个糖果,依此类推,直到我们向最后一个人提供2 * n个糖果. 这个过程重复进行,直到我们用完糖果.最后一个人将得到所有剩余的

LeetCode 1103. Distribute Candies to People (分糖果 II)

题目标签:Math 题目让我们分发糖果,分的糖果从1 开始依次增加,直到分完. for loop可以计数糖果的数量,直到糖果发完.但是还是要遍历array 给people 发糖,这里要用到 index = (本轮分糖果的量 % people 的人数)糖果的数量从0 开始计数,这样的话,index 就会一直重复遍历 array,具体看code. Java Solution: Runtime:  1ms, faster than 90.53% Memory Usage: 33.8 MB, less

【LeetCode】Candy 解题报告

[题目] There are N children standing in a line. Each child is assigned a rating value. You are giving candies to these children subjected to the following requirements: Each child must have at least one candy. Children with a higher rating get more can

Codeforces Round #257 (Div. 2) A/B/C/D

前三题早就写好了,一直在纠结D A. Jzzhu and Children 题意:就是简单的模拟,给排成一队的孩子分发糖果,每个孩子有至少要得到的糖果数. 然后每次给队头的孩子分发m个糖果,如果他已经得到了足够的糖果(大于等于他想得到的 最少糖果数)那么他就出队,否则他就去队尾.问最后一个孩子的编号. 算法:队列模拟,水题~ #include<cstdio> #include<iostream> #include<cstring> #include<queue&g

OpenJudge百炼习题解答(C++)--题4110:圣诞老人的礼物-Santa Clau’s Gifts

题: 总时间限制:  1000ms  内存限制:  65536kB 描述 圣诞节来临了,在城市A中圣诞老人准备分发糖果,现在有多箱不同的糖果,每箱糖果有自己的价值和重量,每箱糖果都可以拆分成任意散装组合带走.圣诞老人的驯鹿最多只能承受一定重量的糖果,请问圣诞老人最多能带走多大价值的糖果. 输入 第一行由两个部分组成,分别为糖果箱数正整数n(1 <= n <= 100),驯鹿能承受的最大重量正整数w(0 < w < 10000),两个数用空格隔开.其余n行每行对应一箱糖果,由两部分组

POJ 3159 Candies(查分约束)

Description: During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher brought the kids of flymouse’s class a large bag of candies and had flymouse distribute them. All the kids loved candies very much and oft

leetcode 之 Product of Array Except Self

原问题描述:  难度: 中等 Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i]. Solve it without division and in O(n). For example, given [1,2,3,4], return