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

সি++ কোড: ছাত্ররা থেকে বেশি ভোট পেতে ন্যূনতম k বের করুন

একটি অ্যারে A আছে n উপাদানের সাথে। n জন ছাত্র আছে, প্রত্যেকের ঠিক k টি ভোট আছে এবং সব ভোট ব্যবহার করতে হবে। দুটি পার্টি আছে। A[i] মানে i-তম ছাত্র প্রথম পার্টিকে A[i] ভোট দিয়েছে, বাকি k-A[i] ভোট دوم পার্টিকে যাবে। دوم পার্টি k এমনভাবে নির্ধারণ করতে চায় যাতে তারা জিতে। ন্যূনতম সম্ভাব্য k কত?

উদাহরণ

A = [2, 2, 3, 2, 2]
আউটপুট: 5
ব্যাখ্যা: প্রথম পার্টি পেল ১১ ভোট। k=5 হলে دوم পার্টি পাবে (3+3+2+3+3)=১৪ ভোট এবং জিতবে।

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

n := A-এর সাইজ
s := 0, m := 0
for k := 0 to n-1:
    x := A[k]
    m := max(m, x)
    s += x
return max(m, 2*s/n + 1)

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

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

int solve(vector<int> A) {
    int n = A.size(), s = 0, m = 0;
    for (int k = 0; k < n; k++) {
        int x = A[k];
        m = max(m, x);
        s += x;
    }
    return max(m, 2 * s / n + 1);
}

int main() {
    vector<int> A = {2, 2, 3, 2, 2};
    cout << solve(A) << endl;
}

ইনপুট

{ 2, 2, 3, 2, 2 }

আউটপুট

5
  1. C++ কোড: গাণিতিক গড় বিচ্যুতি (Arithmetic Mean Deviation) ন্যূনতম করা

  2. C++-এ গ্রাফে سورস থেকে K-ও অধিক দৈর্ঘ্যের পাথ আছে কিনা যাচাই

  3. N থেকে M-এ যেতে ন্যূনতম ধাপের সংখ্যা বের করা C++-তে

  4. সর্বনিম্ন x খুঁজে বের করা যাতে (x % k) * (x / k) == n C++-তে