কম্পিউটার

C++ এ প্রদত্ত N ত্রিভুজের মধ্যে অনন্য ত্রিভুজের সংখ্যা খুঁজুন


এই সমস্যায়, আমাদের N ত্রিভুজ নির্দেশ করে N আকারের তিনটি অ্যারে s1[], s2[] এবং s3[] দেওয়া হয়েছে। আমাদের কাজ হল প্রদত্ত N ত্রিভুজের মধ্যে অনন্য ত্রিভুজের সংখ্যা খুঁজে বের করা।

একটি ত্রিভুজ অনন্য হওয়ার জন্য, এর সমস্ত বাহু অনন্য হওয়া উচিত অর্থাৎ অন্য কোনও ত্রিভুজের একই বাহু থাকা উচিত নয়৷

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

s1[] = {1, 5, 3}
s2[] = {2, 3, 2}
s3[] = {4, 2, 5}

আউটপুট

1

ব্যাখ্যা

1 2 4 বাহু বিশিষ্ট ত্রিভুজ অনন্য।

সমাধান পদ্ধতি

সমস্যার একটি সহজ সমাধান হল অনন্য ত্রিভুজের সংখ্যা গণনা করা।

এর জন্য, আমরা প্রথমে প্রতিটি ত্রিভুজের পাশ বাছাই করব এবং তারপর একটি মানচিত্রে সংরক্ষণ করব, যদি এটির মান অনন্য হয় তাহলে গণনা বৃদ্ধি করে৷

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int countUniqueTriangle(int a[], int b[], int c[], int n) {
   vector<int> triSides[n];
   map<vector<int>, int> m;
   for (int i = 0; i < n; i++) {
      triSides[i].push_back(a[i]);
      triSides[i].push_back(b[i]);
      triSides[i].push_back(c[i]);
      sort(triSides[i].begin(), triSides[i].end());
      m[triSides[i]] = m[triSides[i]] + 1;
   }
   map<vector<int>, int>::iterator itr;
   int uniqueTriCount = 0;
   for (itr = m.begin(); itr != m.end(); itr++) {
      if (itr->second == 1)
         if (itr->second == 1)
            uniqueTriCount++;
   }
   return uniqueTriCount;
}
int main() {
   int s1[] = { 1, 5 ,3 };
   int s2[] = { 2, 3, 2 };
   int s3[] = { 4, 2, 5 };
   int N = sizeof(s1) / sizeof(s1);
   cout<<"The number of unique triangles is "<<countUniqueTriangle(s1, s2, s3, N);
   return 0;
}

আউটপুট

The number of unique triangles is 1

  1. C++ কোড প্রদত্ত প্রাইম হাইপোথিসিসকে খণ্ডন করার জন্য নম্বর খুঁজতে

  2. একটি প্রদত্ত গ্রাফে সেতুর প্রান্তের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

  3. C++ এ LCM এবং HCF দেওয়া হলে অন্য নম্বরটি খুঁজুন

  4. C++ এ মূলদ সংখ্যার LCM খুঁজুন