মান লিখুন: আমাদের কাছে n উপাদান বিশিষ্ট একটি অ্যারে A রয়েছে। আমরা প্রদত্ত সংখ্যাগুলোর যেকোনো সাবসেট নির্বাচন করি এবং সেগুলো নেগেট করি। আমরা অ্যারেতে পাওয়া যাবে সর্বোচ্চ কতগুলো ভিন্ন মান তা বের করতে হবে।
উদাহরণ
যদি ইনপুট হয় A = [1, 1, 2, 2], তবে আউটপুট হবে 4, কারণ আমরা প্রথম এবং শেষ সংখ্যাগুলো নেগেট করে অ্যারেটিকে [-1, 1, 2, -2] বানাতে পারি যাতে চারটি ভিন্ন মান থাকে।
সমাধানের ধাপসমূহ
se সেট তৈরি করুন
n := A এর আকার
for i := 0 থেকে n-1 পর্যন্ত:
x := A[i]
যদি x se-তে থাকে:
-x se-তে ইনসার্ট করুন
অন্যথায়:
x se-তে ইনসার্ট করুন
se এর আকার রিটার্ন করুন
C++ বাস্তবায়ন
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A) {
set<int> se;
int n = A.size();
for (int i = 0; i < n; i++) {
int x = A[i];
if (se.count(x))
se.insert(-x);
else
se.insert(x);
}
return se.size();
}
int main() {
vector<int> A = { 1, 1, 2, 2 };
cout << solve(A) << endl;
}
ইনপুট
{ 1, 1, 2, 2 }
আউটপুট
4