【華為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 <vector>
#include <iostream>
using namespace std;int getTimes(const vector<int> &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<int> 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;
}