
processingData
Có n tập tin đang chờ được thực thi với a[i] (mb) (0 ≤
i < n) là dung lượng ram cần thiết để xử lí tập tin thứ i (mb) và b[i] (s) là khoảng thời gian cần thiết để tập tin được xử lí xong.
Một thanh ram có dung lượng tối đa là k (mb), tại một thời điểm có thể xử lí được nhiều tập tin, thời gian xử lí tập tin thứ i và chuyển sang xử lí tập tin thứ i+1 được tính là 1 (s)
Hãy cho biết tại giây thứ bao nhiêu, thanh ram sẽ bị quá tải (đầy hoặc tràn) và không thể xử lí tập tin được nữa, nếu thanh ram xử lí được tất cả mọi tập tin, trả về -1.
Ví dụ:
- Với
a = [10,20,30,50,90,20]
, b = [1,1,2,3,1,1] , k = 100 thì processingData(a) = 4
Giải thích: - Với
a = [100,150,200]
, b = [1,4,2] , k = 251 thì processingData(a) = -1
Đầu vào/Đầu ra:
-
[Thời gian chạy] 0.5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript.
-
[Đầu vào] Array of Integers: a, b . Integer: k
1 ≤ a.size() ≤ 105
. 1≤
a[i] ≤ 105
b.size() = a.size()
. 1≤ b
[i] ≤ 105
0 ≤ k ≤ 105
-
[Đầu ra] Integer.
Số nguyên duy nhất thỏa mãn yêu cầu đề bài.
Post Comment