Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

C++: Đếm số tiền tệ tối đa nhân viên ngân hàng thu được

Bài toán: Nhân viên ở két k. Vệ sĩ trái ở l < k, vệ sĩ phải ở m > k. Nhân viên có thể lấy tiền tại két hiện tại hoặc di chuyển sang két liền kề. Không được vào két có vệ sĩ. Mảng A lưu số tiền mỗi két. Tìm tổng tiền tối đa.

Quan sát: Nhân viên chỉ có thể truy cập các két trong khoảng (l, m) (loại trừ l và m). Vì không thể qua vệ sĩ. Vậy chỉ cần đếm số phần tử A[i] thỏa l < A[i] < m.

Code C++

#include <bits/stdc++.h>
using namespace std;

int solve(int k, int l, int m, vector<int> A) {
    int cnt = 0;
    for (int x : A)
        if (x > l && x < m) cnt++;
    return cnt;
}

int main() {
    int k = 5, l = 3, m = 7;
    vector<int> A = {4, 7, 5, 5, 3, 6, 2, 8};
    cout << solve(k, l, m, A) << endl; // 4
    return 0;
}

Kết quả

4

Các giá trị hợp lệ: 4, 5, 5, 6 (đều trong (3,7)).