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