【问题描述】 阿迪和他的朋友一共k个人,分吃n颗糖,每颗糖只能分给他们中的某个人或者丢弃。 人的编号从1到k,阿迪是第1号。阿迪将选择一个正整数x来分糖,他先给自己x颗,然后给下一个人x颗,再给第三个人x颗,如此继续,循环往复。剩余的(不能整除x的部分)将会丢弃。 阿迪不能选择大于M的x去分配,因为这样会被别人认为太贪心(嘿嘿,其实他真的很贪心)。还有,他不能选择一个小的x,使得有人会收到糖的次数超过D,这样会被认为分得太慢。 阿迪想请你找出一个有效的x,保证让阿迪能得到最多的糖。

【输入形式】 输入为一行4个整数n、k、M和D,分别表示糖的数量、人的数量、每次能分配的最大数量、人可以收到糖的最大次数。

【输出形式】 输出为一个整数,表示阿迪自己能收到的最大可能的糖的颗数。

【样例输入1】

20 4 5 2

【样例输出1】

8

【样例输入2】

30 9 4 1

【样例输出2】

4

【样例说明】 在第一个样例中,阿迪应该选择x=4,4颗给自己,4颗给第2个人,4颗给第3个人,4颗给第4个人,剩下的4颗给他自己。没有人收到糖的次数超过2,而他自己得到了8颗糖。

【解题思路】从每次分配一颗糖开始计算每种可能情况下阿迪所获得的糖果数,最后通过冒泡排序选出最多的情况即可

#include <iostream>using namespace std;int main()
{int n,k,M,D,m,T=0,I=0,i=1;cin>>n>>k>>M>>D;m=n;int a[255];for(i=1;i<=M;i++){while(n>0){n=n-i;if(n>=0)I++;//I表示在单次分配i颗糖情况下所需的总次数elseI=I;}if(I>k*D){n=m;I=0;}else{if(I%k!=0)a[T]=((I/k)+1)*i;else{a[T]=(I/k)*i;}I=0;T++;n=m;}}for(int t=1;t<T;t++){for(int j=0;j<T-t;j++){if(a[j]<a[j+1]){int temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}cout<<a[0];return 0;

【评分标准】

【练习四 数组 编程题 7. 贪心的阿迪 】相关推荐

  1. 今日头条2018校招测试开发方向(第一、二、三、四批)编程题汇总 - 题解

    对于今日头条这家公司来说,测试的题和后端开发的题几乎是一样的,但是由于第一批的后端开发的题没有在牛客网上放出来,因此,猜测后端开发第一批的题应该和后端开发第一批的题一样,同时也想做一个测试方向编程题的 ...

  2. 今日头条2018校园招聘后端开发工程师(第四批)编程题 - 题解

    做过第三批的题目,今日头条2018校园招聘后端开发工程师(第三批)编程题 - 题解和第二批的题目,今日头条2018校园招聘后端开发工程师(第二批)编程题 - 题解. 这一场题目还是挺好玩的,也挺有技巧 ...

  3. c语言数组编程题及解答,C语言数组编程题及解答

    资源描述: [程序1] 用筛选法求100之内的素数 筛选法又称筛法,是求不超过自然数N(N1)的所有质数的一种方法.据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274-194年)发明 ...

  4. 某公司的员工分为5类,每类员工都有相应的封装类。(黑马第三版Java基础入门 第四章编程题)

    (1) Employee:这是所有员工总的父类. ① 属性:员工的姓名,员工的生日月份 ② 方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励 ...

  5. C++primer plus第六版第四章编程题代码

    1. #include "stdafx.h" #include <iostream> #include <string> #include <vect ...

  6. python输入整数n计算并输出1+22+333+4444_编程题

    四.编程题 1.编写程序:输入一矩形的长和宽,计算该矩形的面积. 2.编程:输入求的半径R,计算并输出球的体积. 3.编程:输入三个数,求出这三个数的和以及平均值,并在屏幕上输出. 4.编程:输入一个 ...

  7. java二维数组模拟用户登录_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)...

    这里分享三道编程题, 下面是我个人的视频讲解我的解题思路以及代码运行演示https://www.zhihu.com/video/1253424180936724480 1. 编程实现以下需求: 定义一 ...

  8. 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)

    原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...

  9. 督促自己——某客编程题3道(Java)——字符串查找、数组、集合

    督促自己--某客编程题3道(Java)--字符串查找.数组.集合 第一题: 题目描述 一个DNA序列由A/C/G/T四个字母的排列组合组成.G和C的比例(定义为GC-Ratio)是序列中G和C两个字母 ...

最新文章

  1. poj2965-poj2965-The Pilots Brothers' refrigerator
  2. 2020长沙“科技之星”榜单重磅揭晓,近百家企业凭实力“出道”!
  3. 二叉树中第二小的节点
  4. 爬虫9-淘宝商品信息定向爬虫
  5. define 解析依赖,判断状态,初始化/触发加载 --------require 同步加载(直接返回)/异步加载(创建匿名模块,判断状态,初始化/触发加载)
  6. HTTP请求报文和响应报文中的实体数据
  7. 三菱模拟量输入与输出程序_初学PLC是学习西门子还是三菱?
  8. 技校计算机科技都学什么好,技校计算机都学什么?
  9. JDK1.5英文版CHM文档下载地址
  10. 《系统工程师实战培训》-01-规划(附:原版课件)
  11. JAVA之JAR文件
  12. PTA 7-31 掉入陷阱的
  13. ROS教程之使用UVC摄像头
  14. python微信数据解密-dat文件转图片(支持JPG,PNG,GIF)
  15. XPS格式文件如何编辑?
  16. 如何用WGDI进行共线性分析(上)
  17. nginx启动提示nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  18. linux sed -i 命令
  19. 整合百度AI实现手机拍照识别车牌号
  20. 解决无法使用IMAP将Gmail帐户添加到Outlook的问题

热门文章

  1. struct page
  2. Java的在哪里找labor_Java流程控制
  3. ★☆【二分圖最佳匹配】丘比特的煩惱
  4. DevOps是什么鬼?
  5. 炉石android更新日志,炉石传说18.4版本更新了什么?18.4版本更新内容汇总[多图]...
  6. 在已安装win10环境中利用EasyBCD引导安装Ubuntu16.04
  7. 第四章 照相机模型与增强现实
  8. 小熊派4G开发板初体验SDK开发
  9. eclipse birt使用脚本实现换行
  10. 【数据库】谈谈分库分表吧?