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

Tính toán thí nghiệm vật lý: tổng tối thiểu hai giá trị bằng C++

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