ধরুন আমাদের একটি সংখ্যা n আছে। একটি গেমে, প্রতিটি চরিত্রের চারটি ভিন্ন স্বাস্থ্য পয়েন্ট (HP) থাকে। বিভাগগুলি নিম্নরূপ -
-
বিভাগ A :যদি HP আকারে থাকে (4n + 1)
-
ক্যাটাগরি বি :যদি HP আকারে থাকে (4n + 3)
-
ক্যাটাগরি C :যদি HP আকারে থাকে (4n + 2)
-
বিভাগ D :যদি HP আকারে 4n
হয়
এই 4টি বিভাগ সর্বোচ্চ থেকে সর্বনিম্ন পর্যন্ত A> B> C> D হিসাবে অর্ডার করা হয়েছে। সুতরাং, বিভাগ A সর্বোচ্চ এবং বিভাগ D হল সর্বনিম্ন। গেম খেলার সময়, খেলোয়াড়রা চরিত্রের HP বাড়াতে পারে। এখন, অমল চায় আপনি তার এইচপি সর্বোচ্চ 2 বৃদ্ধি করুন (অর্থাৎ 0, 1 বা 2 দ্বারা)। আমাদের খুঁজে বের করতে হবে যে তার এইচপি কতটা বাড়াতে হবে যাতে এটি সর্বোচ্চ সম্ভাব্য বিভাগ পেতে পারে?
সুতরাং, যদি ইনপুটটি n =98 এর মত হয়, তবে আউটপুট হবে 1 B, কারণ 98 C শ্রেণীতে রয়েছে (4*24 +2), এটি 1 দ্বারা বৃদ্ধি করে, এটি B শ্রেণীতে আপগ্রেড করা হবে, কিন্তু যদি আমরা এটিকে 2-এ বাড়িয়ে দেই, এটি হবে 100(4*25) যা D বিভাগ। তাই সর্বোচ্চ বিভাগ B এ সম্ভব।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
if n mod 4 is same as 2, then: return "1 B" Otherwise return |(n mod 4) - 1| and 'A'
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; void solve(int n){ if (n % 4 == 2) cout << "1 B"; else cout << abs(n % 4 - 1) << " A"; } int main(){ int n = 98; solve(n); }
ইনপুট
98
আউটপুট
1 B