১ থেকে n পর্যন্ত সংখ্যা থেকে সর্বোচ্চ সংখ্যক ভিন্ন উপাদান বাছাই করতে হবে যাতে কোনো সাবসেটের যোগফল k না হয়।
সমাধানের ধাপসমূহ
(k+1)/2 থেকে k-1 পর্যন্ত এবং k+1 থেকে n পর্যন্ত সংখ্যাগুলো নিন। এগুলোর কোনো সাবসেটের যোগফল k হবে না।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void solve(int n, int k) {
for (int i = (k + 1) / 2; i <= k - 1; i++)
cout << i << ", ";
for (int i = k + 1; i <= n; i++)
cout << i << ", ";
}
int main() {
int n = 5, k = 3;
solve(n, k);
return 0;
}
ইনপুট
5, 3
আউটপুট
2, 4, 5,
ব্যাখ্যা
k=3 হলে, ২ এবং ৪, ৫ নেওয়া হয়েছে। কোনো সাবসেটের যোগফল ৩ হয় না।