题目

有n只小熊,他们有着各不相同的战斗力。每次他们吃糖时,会按照战斗力来排,战斗力高的小熊拥有优先选择权。前面的小熊吃饱了,后面的小熊才能吃。每只小熊有一个饥饿值,每次进食的时候,小熊们会选择最大的能填饱自己当前饥饿值的那颗糖来吃,可能吃完没饱会重复上述过程,但不会选择吃撑。

现在给出n只小熊的战斗力和饥饿值,并且给出m颗糖能填饱的饥饿值。

求所有小熊进食完之后,每只小熊剩余的饥饿值。

输入描述:

第一行两个正整数n和m,分别表示小熊数量和糖的数量。(n <= 10, m <= 100)
第二行m个正整数,每个表示着颗糖能填充的饥饿值。
接下来的n行,每行2个正整数,分别代表每只小熊的战斗力和当前饥饿值。
题目中所有输入的数值小于等于100。

输出描述:

输出n行,每行一个整数,代表每只小熊剩余的饥饿值。

输入例子1:

2 5
5 6 10 20 30
4 34
3 35

输出例子1:

4
0

例子说明1:

第一只小熊吃了第5颗糖
第二只小熊吃了第4颗糖
第二只小熊吃了第3颗糖
第二只小熊吃了第1颗糖

思路:

设计一个结构-熊,其包含战斗力、饥饿值和id。对其对象变量先按照战斗力从大到小进行排序。

对输入的糖的饥饿值排序。进行处理,处理完成后,按其id从大到小输出熊的剩余饥饿值。

#include<iostream>
#include<vector>
#include<algorithm>
struct bear
{int hungry;int power;int id;
};
bool cmp1(const bear &a,const bear &b)
{return a.power>b.power;
}
bool cmp2(const bear &a,const bear &b)
{return a.id<b.id;
}
using namespace std;
int main()
{int n,m;cin>>n>>m;vector<int>sugar(m);for(int i=0;i<m;i++)cin>>sugar[i];vector<bear>br(n);for(int i=0;i<n;i++){cin>>br[i].power>>br[i].hungry;br[i].id=i;}sort(sugar.begin(),sugar.end());sort(br.begin(),br.end(),cmp1);for(int i=0;i<n;i++){for(int j=m-1;j>=0;--j){if(sugar[j]>0 && (sugar[j]<=br[i].hungry)){br[i].hungry-=sugar[j];sugar[j]=0;}}}sort(br.begin(),br.end(),cmp2);for(int i=0;i<n;i++)cout<<br[i].hungry<<endl;return 0;
}

拼多多2018校招—小熊吃糖相关推荐

  1. 拼多多2018校招编程题汇总 - 题解

    题目链接:点这儿. 列表补全 题目 在商城的某个位置有一个商品列表,该列表是由L1.L2两个子列表拼接而成.当用户浏览并翻页时,需要从列表L1.L2中获取商品进行展示.展示规则如下: 用户可以进行多次 ...

  2. python 拼多多_python 拼多多_拼多多2018校招编程题汇总 Python实现

    列表补全 在商城的某个位置有一个商品列表,该列表是由L1.L2两个子列表拼接而成.当用户浏览并翻页时,需要从列表L1.L2中获取商品进行展示.展示规则如下: 用户可以进行多次翻页,用offset表示用 ...

  3. python 拼多多_拼多多2018校招编程题汇总 Python实现

    列表补全 在商城的某个位置有一个商品列表,该列表是由L1.L2两个子列表拼接而成.当用户浏览并翻页时,需要从列表L1.L2中获取商品进行展示.展示规则如下: 用户可以进行多次翻页,用offset表示用 ...

  4. 拼多多2018校招—Anniversary

    题目 拼多多王国的城市和道路的拓扑结构比较特别,是一个树状结构: 1. 每个城市是树的一个节点: 2. 城市之间的道路是树的一条边: 3. 树的根节点是首都. 拼多多周年庆马上就要到了,这是拼多多王国 ...

  5. 拼多多2018校招内推编程-大整数相乘

    编程题] 大整数相乘 时间限制:1秒 空间限制:32768K 有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示.不能用系统自带的大整数类型. 输入描述: 空格分隔的两个字符串,代表 ...

  6. 拼多多2018校招内推编程题汇总 详解

    编程 一.最大乘积 描述: 给定一个无序数组,包含正数.负数和 000,要求从中找出 333 个数的乘积,使得乘积最大,要求时间复杂度:O(n)O(n)O(n),空间复杂度:$O(1) $ 输入描述: ...

  7. 拼多多2018校招编程题

    [编程题] 最大乘积 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)  输入描述: 无序整数数组A[n] 输出描述: 满足 ...

  8. 拼多多2018届毕业生校招笔试题

    列表补全 题目 在商城的某个位置有一个商品列表,该列表是由L1.L2两个子列表拼接而成.当用户浏览并翻页时,需要从列表L1.L2中获取商品进行展示.展示规则如下: 用户可以进行多次翻页,用offset ...

  9. 拼多多2018年校招真题

    拼多多2018年校招真题 题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出 ...

最新文章

  1. 位运算和典型应用详解
  2. Exchange证书生成器
  3. linux蓝色界面,让Ubuntu7.01开机登录显示蓝色与黑色
  4. xmlWriter以UTF-8格式写xml问题
  5. 马哥运维学习作业(二)
  6. MySQL InnoDB的缓冲池之预读失效和缓存池污染
  7. [转]关于Apple TV(take 2)及 iPhone 更新的相关内容
  8. 谈一谈python中的魔法变量*args和**kwargs
  9. 行人检测资源(上)综述文献
  10. 红米5 Plus刷开发版/小米手机刷开发版
  11. windows 实现 linux soft link,Linux中的软链接(Soft Link)和硬链接(Hard Link)的区别...
  12. macOS 10.14配置APUE环境
  13. phpstudy中的站点突然无法打开,明明路径打对也无法打开,解决办法
  14. 中小学计算机创新教育措施,小学信息技术教学论文计算机教学中的创新教育.docx...
  15. 软考最后冲刺阶段该怎么做
  16. Attributed Graph Clustering: A Deep Attentional Embedding Approach,IJCAI2019
  17. 路由器配置和静态路由
  18. day2(sdasdasdasdasd)
  19. 【Web项目】点餐系统
  20. swoole 捕捉php错误,常见错误 - swoole - yoyo

热门文章

  1. JME2 和JME3的比较
  2. html5 video播放按钮放在中间,在html5视频控制区跟踪点击播放按钮(Track clicks to play button in html5 video control area)...
  3. 第130章 SQL函数 SQRT
  4. CATIA V6二次开发——Automation之对象
  5. 计算机毕业设计java+ssm酒店管理系统(源码+系统+mysql数据库+Lw文档)
  6. Spring-Cache
  7. 英雄联盟怎么解除小窗口_英雄联盟手游安妮怎么样 英雄联盟手游安妮技能介绍...
  8. ppt编写一个抽奖系统_PPT抽奖程序
  9. 什么是响应式布局?原理是什么?
  10. 微信小程序新坑-文字溢出连续英文或者英文溢出 会出现字符