কম্পিউটার

সি++ কোড চেক করতে জল ঢালা খেলা সব বিজয়ী আছে কি না


ধরুন আমাদের n উপাদান সহ একটি অ্যারে A আছে এবং আরেকটি সংখ্যা s আছে। টেবিলে একটি খালি জলের মগ এবং এন খালি জলের মগ রয়েছে৷ একটি খেলায়, কয়েকজন খেলোয়াড় থাকে। প্রতিটি পদক্ষেপে, একজন খেলোয়াড় একটি খালি মগ জল নেয় এবং তা থেকে সমস্ত জল কাপে ঢেলে দেয়। যদি এটি ওভারফিল হয়, প্লেয়ার হারিয়ে যাবে। তাদের সকলেই বিজয়ী হবেন কিনা তা আমাদের পরীক্ষা করতে হবে (কাপটি ওভারফিল হবে না)। যদি একটি আপ ইতিমধ্যেই সম্পূর্ণরূপে পূর্ণ হয়, তাহলে পরবর্তী খেলোয়াড় তার চালটি খেলবে না। এখানে s হল খালি কাপের ক্ষমতা এবং A[i] হল ith কাপে থাকা জলের পরিমাণ৷

সুতরাং, যদি ইনপুটটি A =[3, 1, 3] এর মত হয়; s =4, তাহলে আউটপুট True হবে, কারণ প্রথম এবং দ্বিতীয় প্লেয়ার দ্বারা, কাপটি পূর্ণ হবে। শেষের জন্য, খেলোয়াড় সেই চালটি খেলবে না।

পদক্ষেপ

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

k := 0
n := size of A
sort the array A
for initialize i := 0, when i < n - 1, update (increase i by 1), do:
   k := k + A[i]
if k > s, then:
   return false
Otherwise
   return true

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include <bits/stdc++.h>
using namespace std;
bool solve(vector<int> A, int s){
   int k = 0;
   int n = A.size();
   sort(A.begin(), A.end());
   for (int i = 0; i < n - 1; i++)
      k += A[i];
   if (k > s)
      return false;
   else
      return true;
}
int main(){
   vector<int> A = { 3, 1, 3 };
   int s = 4;
   cout << solve(A, s) << endl;
}

ইনপুট

{ 3, 1, 3 }, 4

আউটপুট

1

  1. একটি গাছ আইসোমরফিক নাকি C++ এ নয় তা পরীক্ষা করুন

  2. একটি সংখ্যা 23 দ্বারা বিভাজ্য বা C++ এ নয় তা পরীক্ষা করুন

  3. একটি নম্বর একটি কৃষ্ণমূর্তি নম্বর কিনা তা C++ এ পরীক্ষা করুন

  4. একটি বাইনারি স্ট্রিং সি++ এ 1s এর মধ্যে 0 আছে কিনা তা পরীক্ষা করুন