NC200576. Order
描述
输入描述
第一行是一个整数,表示样例的个数。
每个样例的第一行是两个整数,表示订单数与工厂每天能生成的产品数。
第二行是n个整数,表示第i份订单的数量。
输出描述
依次输出样例的结果,为一个整数。
示例1
输入:
2 3 5 3 4 5 3 4 1 1 1
输出:
6 3
说明:
第一个样例,可以直接按照原始顺序生产,3个订单分别完成于第1天,第2天,第3天,总和为6。<br/>C++14(g++5.4) 解法, 执行用时: 175ms, 内存消耗: 2204K, 提交时间: 2020-02-26 20:00:54
#include<bits/stdc++.h> using namespace std; int a[1010]; int main() { int T; cin>>T; while(T--) { int n,m; int ans=0,sum=0; cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+1+n); for(int i=1;i<=n;i++) { sum=sum+a[i]; ans=ans+ceil(sum*1.0/m); } cout<<ans<<endl; } return 0; }
Python3(3.9) 解法, 执行用时: 321ms, 内存消耗: 2936K, 提交时间: 2021-02-01 16:50:53
t=int(input()) for i in range(t): x=0 y=0 n,m=map(int,input().split()) ai=input().split() ai=[int(j) for j in ai] ai.sort() for j in ai: x+=j if x%m==0: y+=x//m else: y+=x//m+1 print(y)