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

সি++ কোড: দুটি অ্যারে সমান করার জন্য অপারেশন সংখ্যা গণনা করুন

দুটি অ্যারে A এবং B দেওয়া আছে n উপাদানের। একটি অপারেশন: দুটি ইন্ডেক্স i, j বেছে নিন, i-তম উপাদান ১ কমান, j-তম উপাদান ১ বাড়ান। অপারেশনের পর সব উপাদান নন-নেগেটিভ থাকতে হবে। A এবং B সমান করতে হবে। অপারেশন সিকোয়েন্স বের করতে হবে। অসম্ভব হলে -1।

উদাহরণ

A=[1,2,3,4], B=[3,1,2,4] → আউটপুট: [(1,0), (2,0)]
ব্যাখ্যা: i=1,j=0 দিয়ে [2,1,3,4], তারপর i=2,j=0 দিয়ে [3,1,2,4]।

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

a:=0, b:=0, c:=0
n := A.size()
C[n] := {0}
for i:=0 to n-1: a += A[i]
for i:=0 to n-1: b += B[i]
if a != b: return -1
else:
    for i:=0 to n-1:
        c += |A[i]-B[i]|
        C[i] = A[i]-B[i]
    c /= 2
    i:=0, j:=0
    while c--:
        while C[i]<=0: i++
        while C[j]>=0: j++
        print i, j
        C[i]--, C[j]++

সি++ কোড উদাহরণ

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

void solve(vector<int> A, vector<int> B) {
    int a=0, b=0, c=0, n=A.size();
    vector C(n,0);
    for (int i=0;i=0) j++;
        cout << "(" << i << ", " << j << "), ";
        C[i]--, C[j]++;
    }
}

int main() {
    vector A = {1,2,3,4};
    vector B = {3,1,2,4};
    solve(A,B);
}

ইনপুট

{ 1, 2, 3, 4 }, { 3, 1, 2, 4 }

আউটপুট

(1, 0), (2, 0),
  1. C++ প্রোগ্রাম: দিয়ে দেয়া আকারের ডোডেকাগন बनाने के तरीক সংখ্যা গণনা

  2. C++-এ দুটি অ্যার থেকে একই অঙ্কযোগফল নিয়ে স্বতন্ত্র জোড়া গণনা

  3. C++-এ হেক্সাডেসিমেল সংখ্যা গণনা

  4. C++ ব্যবহার করে দুটি স্ট্রিং সমান করার ন্যূনতম অপারেশন সংখ্যা