একটি ভৌতবিজ্ঞান পরীক্ষা করছি। n জোড়া মান এবং একটি থ্রেশহোল্ড k দেওয়া আছে। প্রতিটি জোড়ার প্রথম মান এক টোটালে যোগ হবে, دوم মান আরেক টোটালে যোগ হবে। এখন প্রতিটি টোটালের জন্য ন্যূনতম মানের মধ্যে min(টোটাল, k-টোটাল) বের করব এবং দুটি মিনিমাম যোগ করে আউটপুট দেব।
উদাহরণ
n=4, k=20, values={{3,5},{4,3},{2,1},{4,4}} → আউটপুট: 14
সমাধানের ধাপসমূহ
a := 0, b := 0
for i := 0 to n-1:
a += values[i].first
b += values[i].second
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