ধরুন আমাদের দুটি সংখ্যা a এবং b আছে। অমল আর বিমল একটা খেলা খেলছে। প্রথমে তাদের প্রত্যেকে 1 থেকে 6 পর্যন্ত একটি পূর্ণসংখ্যা লেখে, তারপর একটি পাশা নিক্ষেপ করা হয়। যে খেলোয়াড়ের লিখিত নম্বর কাগজে লেখা নম্বরের কাছাকাছি পৌঁছেছে, সে সেই রাউন্ডে জিতবে, যদি তাদের উভয়ের মধ্যে একই পার্থক্য থাকে, তবে সেটি ড্র। যদি অমল সংখ্যাটি a লিখে এবং বিমল b লিখে, তাহলে আমাদেরকে অমলের জিততে সম্ভাব্য সম্ভাব্য সংখ্যা, সম্ভাব্য ড্রয়ের সংখ্যা এবং বিমল যেভাবে জিততে পারে তার সংখ্যা গণনা করতে হবে।
সুতরাং, যদি ইনপুটটি a =2 এর মত হয়; b =4, তাহলে আউটপুট হবে [2, 1, 3] তাই Amal 2টি সম্ভাব্য উপায়ে জিততে পারে। যদি ডাইস 3 দেখায়, একটি ড্র আছে।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
s1 := 0 s2 := 0 s3 := 0 if (a + b) mod 2 is same as 0, then: s2 := 1 if a is same as b, then: s2 := 6 otherwise when a > b, then: s1 := 6 - ((a + b) / 2) Otherwise s1 := (a + b - s2 - 1) / 2 s3 := 6 - s1 - s2 print s1, s2 and s3
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; void solve(int a, int b) { int s1 = 0, s2 = 0, s3 = 0; if ((a + b) % 2 == 0) s2 = 1; if (a == b) s2 = 6; else if (a > b) s1 = 6 - ((a + b) / 2); else s1 = (a + b - s2 - 1) / 2; s3 = 6 - s1 - s2; cout << s1 << ", " << s2 << ", " << s3 << endl; } int main() { int a = 2; int b = 4; solve(a, b); }
ইনপুট
2, 4
আউটপুট
2, 1, 3