Giả sử chúng ta có n pin có thể sử dụng tối đa 5 lần. Chúng ta có một số thiết bị cần 3 pin và mỗi lần sử dụng thiết bị sẽ làm tăng số lần sử dụng của pin lên 1. Nếu chúng ta phải sử dụng thiết bị k lần, hãy tìm số tổ hợp pin có thể tạo để cấp nguồn cho thiết bị. Một pin không thể dùng trong hai thiết bị cùng lúc và pin đã dùng 5 lần không thể đưa vào. Số lần sử dụng của các pin được cho trong mảng batt.
Ví dụ, 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ể tạo một tổ hợp pin để cấp nguồn cho thiết bị k lần.
Các bước thực hiện
Để giải quyết bài toán này, chúng ta thực hiện theo các bước sau:
ans := 0 for khởi tạo i := 0, khi i < n, cập nhật (tăng i lên 1), do: if batt[i] + k <= 5, thì: (tăng ans lên 1) return ans / 3
Ví dụ minh họa
Xem 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