首页 > 分享 > 3467:【例84.2】分香蕉

3467:【例84.2】分香蕉

最新推荐文章于 2024-09-06 05:00:00 发布

yp1102013 于 2024-05-12 20:20:45 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

【题目描述】

又要了丰收的季节,花果山的nn个香蕉成熟了,每个香蕉的质量为aiai。蒜头君还养着mm只猴子,每只猴子的体重为bibi。猴子们吃香蕉有一定的顺序,按照体重从大到小的顺序一个个拿香蕉。当一轮拿完时,如果还有多的香蕉就会继续一个个拿,直到香蕉被取完。每个猴子都很聪明,每次会选质量最大的那个香蕉。

现在问题来了,最后每个猴子能获得多少质量的香蕉?

【输入】

第一行两个整数nn, mm (1≤n,m≤1051≤n,m≤105)。

第二行nn个整数aiai ($1

第三行mm个整数bibi ($1

【输出】

一行,mm个用空格分隔的整数,表示每个猴子获得的香蕉质量之和。

【输入样例】

5 3 1 2 3 4 5 3 2 1 【输出样例】

7 5 3

源代码:

#include <bits/stdc++.h> using namespace std; int n,m,a[100010],b[100010],id[100010]; long long ans[100010]; int main( ) {cin>>n>>m;for(int i=0;i<n;i++){scanf("%d",&a[i]);}for(int i=0;i<m;i++){scanf("%d",&b[i]);id[i]=i;}sort(a,a+n,greater<int>());sort(id,id+m,[&](int i,int j){return b[i]>b[j];} );for(int i=0,j=0;i<n;i++){int k=id[j];ans[k]+=a[i];j=j+1==m?0:j+1;}for(int i=0;i<m;i++){printf("%lld ",ans[i]);}return 0; }

相关知识

如何种植香蕉树
香蕉
香蕉究竟有没有种子?带你了解香蕉种子的秘密!
北方温室香蕉种植技术
香蕉花蓟马该如何防治?香蕉花蓟马用药防治措施!
香蕉的生命周期是多年生还是一年生(探究香蕉生长周期及特点)
香蕉文化背景
香蕉可以减肥吗,香蕉减肥法介绍
香蕉花怎么吃 香蕉花瓣的食用方法
香蕉种苗的吸芽繁殖方法

网址: 3467:【例84.2】分香蕉 https://m.huajiangbk.com/newsview1071984.html

所属分类:花卉
上一篇: 丰收的季节作文450字
下一篇: 丰收的秋天作文300字(精选64