ধরুন, আমরা একটি পদার্থবিদ্যা পরীক্ষা করছি। আমাদের n জোড়া মান এবং একটি প্রান্তিক মান k দেওয়া হয়েছে। প্রতিটি জোড়ার প্রথম মান একটি মোট মানের সাথে যোগ করা হয় এবং জোড়ার দ্বিতীয় মানটিও অন্য মোট মানের সাথে যোগ করা হয়। এখন, আমরা পরীক্ষা করি যে একটি মোট মান সর্বনিম্ন বা (k - মোট) মান সর্বনিম্ন। আমরা উভয় টোটালের জন্য এটি করি এবং তারপর সেগুলি যোগ করি এবং আউটপুট প্রিন্ট করি।
সুতরাং, যদি ইনপুটটি n =4, k =20, মান ={{3, 5}, {4, 3}, {2, 1}, {4, 4}} এর মত হয়, তাহলে আউটপুট হবে 14।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
a := 0, b = 0 for initialize i := 0, when i < n, update (increase i by 1), do: a := a + first value of values[i] b := b + second value of values[i] print(min((a, k - a) + minimum of b and k - b))
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; #define N 100 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