ধরা যাক একটি পূর্ণসংখ্যা অ্যারে দেওয়া আছে যাতে কিছু মান রয়েছে। আমাদের অ্যারেতে সর্বোচ্চ ও সর্বনিম্ন মানের পার্থক্য বের করতে হবে। এই সমস্যাটি ম্যাক্রো ব্যবহার করে সমাধান করতে হবে। ইনপুট stdin থেকে নেওয়া হবে এবং রেজাল্ট stdout-এ প্রিন্ট করা হবে।
উদাহরণস্বরূপ, array = {120, 589, 324, 221, 234} হলে আউটপুট হবে "The answer is : 469"। কারণ সর্বোচ্চ ৫৮৯ এবং সর্বনিম্ন ১২০, পার্থক্য ৪৬৯।
সমাধানের ধাপসমূহ
- mini := infinity, maxi := negative infinity
- প্রতিটি উপাদান v[i] এর জন্য:
- যদি mini > v[i] হয়, তবে mini := v[i]
- যদি maxi < v[i] হয়, তবে maxi := v[i]
- ans := maxi - mini
- ans প্রিন্ট করুন
উদাহরণ
নিচের ইমপ্লিমেন্টেশনটি দেখুন:
#define minmac(a, b) a = min(a, b) #define maxmac(a, b) a = max(a, b) #define INF ((1 << 31)-2) #define input(a) cin >> a #define toStr(a) string("The answer is :") #define FOO(a, b) #define foreach(a, b) for (int i = 0; i < a.size(); ++i) #include <iostream> #include <vector> using namespace std; FOO(minmac, <) FOO(maxmac, >) int main(){ int n; cin >> n; vector<int> v(n); foreach(v, i) { input(v)[i]; } int mini = INF; int maxi = -INF; foreach(v, i) { minmac(mini, v[i]); maxmac(maxi, v[i]); } int ans = maxi - mini; cout << toStr(The answer is :) <<' '<< ans; return 0; }ইনপুট
5 120 589 324 221 234
আউটপুট
The answer is : 469