কম্পিউটার

কমপক্ষে একজন সাঁতারুর সাথে দেখা করতে আমাদের কত মিনিট অপেক্ষা করতে হবে তা গণনা করার জন্য C++ প্রোগ্রাম


ধরুন আমাদের চারটি সংখ্যা p, a, b এবং c আছে। একটি পুল আছে এবং তিনজন সাঁতারু আছে। তারা পুল পার হতে এবং ফিরে আসতে যথাক্রমে a, b এবং c মিনিট সময় নেয়। সুতরাং প্রথম সাঁতারু পুলের বাম পাশে থাকবে 0, a, 2a, 3a,... শুরুর সময়ের পরে। দ্বিতীয়টি হবে 0, b, 2b, 3b,... মিনিটে এবং তৃতীয়টির জন্য 0, c, 2c, 3c, ... যদি আমরা p মিনিটের পরে পুল পরিদর্শন করি তারা সাঁতার কাটতে শুরু করেছে আমাদের খুঁজে বের করতে হবে কিভাবে পুলের বাম পাশে অন্তত একজন সাঁতারু পেতে আমাদের অপেক্ষা করতে হবে।

সুতরাং, ইনপুট যদি p =2 এর মত হয়; a =6; b =10; c =9, তাহলে আউটপুট হবে কারণ 2 এ আমরা পুলের কাছাকাছি, প্রথম সাঁতারু 6 এ ফিরে আসবে তাই আমাদের 4 ইউনিট সময় অপেক্ষা করতে হবে।

পদক্ষেপ

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

(decrease p by 1)
return minimum of (a - (p mod a + 1)), (b - (p mod b + 1)) and (c - (p mod c + 1))

উদাহরণ

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

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

int solve(int p, int a, int b, int c) {
   p--;
   return min(a - (p % a + 1), min(b - (p % b + 1), c - (p % c + 1)));
}
int main() {
   int p = 2;
   int a = 6;
   int b = 10;
   int c = 9;
   cout << solve(p, a, b, c) << endl;
}

ইনপুট

2, 6, 10, 9

আউটপুট

4

  1. কিভাবে C++ প্রোগ্রাম ব্যবহার করে একটি প্রোগ্রাম চালু করবেন?

  2. কিভাবে সি++ প্রোগ্রামিং শিখবেন?

  3. কিভাবে C++ এ একটি সহজ প্রোগ্রাম তৈরি করবেন?

  4. C# এ এক ক্লাসে আমাদের কতজন ধ্বংসকারী থাকতে পারে?