【华为OD】C卷真题 100%通过:执行时长 C/C++实现

【华为OD】C卷真题 100%通过:执行时长  C/C++实现

目录

题目描述:

示例1

示例2

代码实现:


题目描述:

为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务,假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成

输入描述

第一个参数为GPU一次最多执行的任务个数,取值范围[1, 10000]
第二个参数为任务数组长度,取值范围[1, 10000]
第三个参数为任务数组,数字范围[1, 10000]
 

输出描述

执行完所有任务最少需要多少秒

示例1

输入输出示例仅供调试,后台判题数据一般不包含示例

输入

3
5
1 2 3 4 5

输出

6

说明

一次最多执行3个任务,最少耗时6s

示例2

输入输出示例仅供调试,后台判题数据一般不包含示例

输入

4
5
5 4 1 1 1

输出

5

说明

一次最多执行4个任务,最少耗时5s

代码实现:

#include 
#include 
using namespace std;

int getTimes(const vector &arrays, const int num)
{
	int diss = 0, result = 0;
	for (int task : arrays) {
		if ((task + diss) > num) diss += (task - num);
		else diss = 0;
		++result;
	}
	result += (diss / num);
	if (diss % num) result++;
	return result;
}

int main()
{
	int tCnt;
	int size;
	vector arrays;
	cin >> tCnt >> size;
	for (int i = 0; i < size; ++i) {
		int val;
		cin >> val;
		arrays.push_back(val);
	}
	cout << getTimes(arrays, tCnt) << endl;
	return 0;
}

你可能感兴趣的:(华为OD,算法,数据结构,c++,c语言,华为od)