Giả sử, chúng ta có n pin có thể sử dụng tối đa là 5 lần. Chúng tôi có một số thiết bị phát triển cần ba pin và mỗi lần sử dụng thiết bị sẽ làm tăng số lượng pin sử dụng lên 1. Nếu chúng tôi phải sử dụng thiết bị k lần, chúng tôi phải tìm ra bao nhiêu khối pin mà chúng tôi có thể tạo ra để cung cấp năng lượng cho các thiết bị. Không thể sử dụng pin hai lần đồng thời và không thể bao gồm pin đã sử dụng 5 lần. Số lượng sử dụng của pin được cung cấp trong mảng.
Vì vậy, nếu đầu vào là n =6, k =2, batt ={2, 4, 4, 2, 1, 3}, thì đầu ra sẽ là 1.
Chỉ có thể có một tổ hợp pin được tạo ra để cung cấp năng lượng cho các thiết bị trong k lần.
Các bước
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
ans := 0 for initialize i := 0, when i < n, update (increase i by 1), do: if batt[i] + k <= 5, then: (increase ans by 1) return ans / 3
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
#include <bits/stdc++.h> using namespace std; #define N 100 int solve(int n, int k, int batt[]) { int ans = 0; for(int i = 0; i < n; i++){ if(batt[i] + k <= 5) ans++; } return ans / 3; } int main() { int n = 6, k = 2, batt[] = {2, 4, 4, 2, 1, 3}; cout<< solve(n, k, batt); return 0; }
Đầu vào
6, 2, {2, 4, 4, 2, 1, 3}
Đầu ra
1