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

Chương trình C++ tìm trung vị tối đa của các phần tử có tổng bằng s


Giả sử chúng ta có hai số n và s. Chúng ta phải tìm trung vị tối đa có thể của một mảng n phần tử không âm, sao cho tổng các phần tử bằng s.

Ví dụ, nếu đầu vào là n = 3; s = 5, thì đầu ra sẽ là 2, vì với mảng [1, 2, 2], tổng là 5 và trung vị là 2.

Các bước

Để giải quyết bài toán này, chúng ta sẽ làm theo các bước sau:

m := floor của (n / 2) + 1 return floor của (s / m)

Ví dụ

Xem triển khai sau để hiểu rõ hơn:

#include <bits/stdc++.h> using namespace std; int solve(int n, int s) {    int m = n / 2 + 1;    return s / m; } int main() {    int n = 3;    int s = 5;    cout << solve(n, s) << endl; }

Đầu vào

3, 5

Đầu ra

2