Mô tả bài toán
Cho n cặp giá trị và ngưỡng k. Cộng dồn giá trị đầu thành a, giá trị thứ hai thành b. Kết quả = min(a, k-a) + min(b, k-b).
Ví dụ
n=4, k=20, values={{3,5},{4,3},{2,1},{4,4}} → a=13, b=13 → min(13,7)+min(13,7)=7+7=14.
Thuật toán
Tính tổng a, b. Trả về min(a, k-a) + min(b, k-b).
Code C++
#include <bits/stdc++.h>
using namespace std;
void solve(int n, int k, vector> values) {
int a = 0, b = 0;
for (auto &p : values) {
a += p.first;
b += p.second;
}
cout << min(a, k-a) + min(b, k-b);
}
int main() {
int n=4, k=20;
vector> values = {{3,5},{4,3},{2,1},{4,4}};
solve(n, k, values);
return 0;
}
Đầu vào / Đầu ra
Input: 4, 20, {{3,5},{4,3},{2,1},{4,4}}
Output: 14