2015广工网络赛初赛-Problem C: slamdunk正在做菜

题面:

Problem C: slamdunk正在做菜

Description

广工的slamdunk可谓是人生赢家,据传说他现在即将拥有一个girlfriend,并且在感情的驱使下他甚至开始学起了做菜! 现在他想为girlfriend做N道菜,每道菜做出来需要Ai分钟,slamdunk一分钟最多能煮M道菜,请问他做完这N道菜所需的最短时间 是多少?(如果你能帮他解决这个问题,他和他的girlfriend会送给你一个精美的气球~)

Input

第一行输入一个整数T表示测试数据共有T(1 <= T <=10)组 每组测试数据的第一行有一个正整数N(1 <= N <= 10000)和一个正整数M(1 <= M <= 10000) 第二行有N个正整数A1,A2....An(1 <= Ai <= 10000)表示做出每道菜所需的时间

Output

每组数据输出一个数字,代表做完这N道菜所需的最短时间

Sample Input

23 22 2 210 61 2 3 4 5 6 7 8 9 10

Sample Output

310


题意:可以同时做几道菜,若可以整除,直接取整除和最大值的较大值,若不能则取整除+1和最大值的较大值即可。


代码:

#include <iostream>
#include <cstdio>
using namespace std;
int max(int a,int b)
{
    if(a>b)return a;
    else return b;
}
int main()
{
    int t,n,m,total,maxn,tmp;
    cin>>t;
    while(t--)
    {
        cin>>n>>m;
        total=0;
        maxn=0;
        for(int i=0;i<n;i++)
        {
            cin>>tmp;
            if(tmp>maxn)
            maxn=tmp;
            total+=tmp;
        }
        if(total%m==0)maxn=max(maxn,total/m);
        else maxn=max(maxn,total/m+1);
        cout<<maxn<<endl;
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值