#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, t;
cin >> n >> t;
vector<int> arr(n);
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
sort(arr.begin(), arr.end());
int bestSum = 0;
double bestDiff = 1e9;
for (int i = 0; i < n - 2; i++) {
for (int j = i + 1; j < n - 1; j++) {
for (int k = j + 1; k < n; k++) {
int sum = arr[i] + arr[j] + arr[k];
double average = static_cast<double>(sum) / 3.0;
double diff = abs(average - t);
if (diff < bestDiff || (diff == bestDiff && sum > bestSum)) {
bestDiff = diff;
bestSum = sum;
}
}
}
}
cout << bestSum << endl;
return 0;
}
Nếu bn dùng Python thì mình gửi nha:
A=[] N=int(input("Nhập số phần tử trong list A: ")) while N >100: N=int(input("Nhập số phần tử trong list A: ")) while N < 3: N=int(input("Nhập số phần tử trong list A: ")) i=0 for i in range(N): A.append(int(input('Nhap so thu %d: ' % (i+1)))) print(A) T=int(input("Nhập T: ")) i=0 j=i+1 k=j+1 kq=abs(((A[i]+A[j]+A[k])/3)) chenhlech=0 chenhlech_1=abs(((A[i]+A[j]+A[k])/3)-T) tongcapmoi= A[i]+A[j]+A[k] i=0 tongcapmoi=0 for i in range (0, len(A)-2): for j in range (i+1, len(A)-1): for k in range (j+1, len(A)): tongcap=abs(A[i]+A[j]+A[k]) trungbinh=abs(((tongcap)/3)) chenhlech=abs(trungbinh-T) if chenhlech <= chenhlech_1: if tongcap > tongcapmoi and chenhlech==chenhlech_1: tongcapmoi=tongcap a=A[i] b=A[j] c=A[k] else : if tongcap <tongcapmoi : tongcapmoi=tongcap a=A[i] b=A[j] c=A[k] chenhlech_1=chenhlech print(a+b+c, " là tổng của ba số trong danh sách thỏa mãn yêu cầu nhất.")