สมมติว่าเรากำลังทดลองฟิสิกส์ กำหนด n คู่ค่าและค่าเกณฑ์ k ค่าแรกของแต่ละคู่บวกเข้ากับค่ารวมหนึ่ง ค่าที่สองบวกเข้ากับอีกค่ารวมหนึ่ง ตรวจสอบว่าค่ารวมนั้นน้อยกว่าหรือ (k - ค่ารวม) น้อยกว่า ทำกับทั้งสองค่ารวมแล้วบวกกันพิมพ์ผล
เช่น ถ้าอินพุตคือ n = 4, k = 20, values = {{3, 5}, {4, 3}, {2, 1}, {4, 4}} เอาต์พุตจะเป็น 14
ขั้นตอนการแก้ปัญหา
a := 0, b := 0
for i := 0 ถึง n-1:
a := a + ค่าแรกของ values[i]
b := b + ค่าที่สองของ values[i]
print(min(a, k - a) + min(b, k - b))
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
void solve(int n, int k, vector<pair<int,int>> values) {
int a = 0, b = 0;
for (int i = 0; i < n; i++) {
a += values[i].first;
b += values[i].second;
}
cout << min(a, k - a) + min(b, k - b);
}
int main() {
int n = 4, k = 20;
vector<pair<int,int>> values = {{3, 5}, {4, 3}, {2, 1}, {4, 4}};
solve(n, k, values);
return 0;
}
อินพุต
4, 20, {{3, 5}, {4, 3}, {2, 1}, {4, 4}}
เอาต์พุต
14