কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম: n পিক সহ পারমুটেশন বানানো

n এবং k দেওয়া আছে। ১ থেকে n সংখ্যা দিয়ে একটি পারমুটেশন বানাতে হবে যাতে ঠিক kটি পিক (peak) থাকে। পিক = A[i] > A[i-1] এবং A[i] > A[i+1]। অসম্ভব হলে -1।

সমাধানের ধাপসমূহ

সর্বোচ্চ পিক = (n-1)/2। এর চেয়ে বড় k হলে -1। ১ থেকে n পর্যন্ত অ্যারে বানান। i=2 থেকে 2k পর্যন্ত ২ ধাপে i এবং i+1 স왪 করুন। এতে kটি পিক তৈরি হবে।

উদাহরণ

#include <bits/stdc++.h> 
using namespace std; 

void solve(int n, int k) { 
    if (k > (n - 1) / 2) { cout << "-1"; return; } 
    int a[101]; 
    for (int i = 1; i <= n; i++) a[i] = i; 
    for (int i = 2; i <= 2 * k; i += 2) 
        swap(a[i], a[i + 1]); 
    for (int i = 1; i <= n; i++) 
        cout << a[i] << ", "; 
} 

int main() { 
    int n = 5, k = 2; 
    solve(n, k); 
    return 0; 
}

ইনপুট

5, 2

আউটপুট

1, 3, 2, 5, 4,

ব্যাখ্যা

পারমুটেশন: [1, 3, 2, 5, 4]। পিকগুলো: i=2 (3>1 এবং 3>2), i=4 (5>2 এবং 5>4)। মোট ২টি পিক।

  1. C++-এ প্যারিটি (Parity) বের করার প্রোগ্রাম

  2. C++ প্রোগ্রাম: LCM (লঘুতম সাধারণ গুণিতক) নির্ণয়

  3. C++ প্রোগ্রাম: GCD (মহত্তম সাধারণ ভাজক) নির্ণয়

  4. C++ প্রোগ্রাম: ফ্যাক্টোরিয়াল (Factorial) নির্ণয়