মান লিখুন: আমাদের কাছে চারটি সংখ্যা 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, তবে আউটপুট হবে 4, কারণ ২ মিনিটে পুলে যাওয়ার পর প্রথম স্বিমার ৬ মিনিটে আসবে, তাই ৪ মিনিট অপেক্ষা করতে হবে।
সমাধানের ধাপসমূহ
p := p - 1 min( a - (p % a + 1), b - (p % b + 1), c - (p % c + 1) ) রিটার্ন করুন
C++ বাস্তবায়ন
#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, a = 6, b = 10, c = 9;
cout << solve(p, a, b, c) << endl;
}
ইনপুট
2, 6, 10, 9
আউটপুট
4