কম্পিউটার

মিটিংয়ের পরে ন্যূনতম ক্লান্তি খুঁজে পেতে C++ কোড


ধরুন আমাদের দুটি সংখ্যা a এবং b আছে। দুই বন্ধু OX অক্ষে x =a এবং x =b অবস্থানে আছে। বন্ধুদের প্রত্যেকে একটি করে লাইন বরাবর যেকোনো দিকে সীমাহীন সংখ্যক বার যেতে পারে। নড়াচড়া করার মাধ্যমে, একজন বন্ধুর ক্লান্তি নিম্নলিখিত নিয়ম অনুসারে পরিবর্তিত হয়:প্রথম পদক্ষেপে ক্লান্তি 1 দ্বারা বৃদ্ধি পায়, দ্বিতীয় পদক্ষেপটি 2 দ্বারা ক্লান্তি বাড়ায় এবং আরও অনেক কিছু। তাদের মধ্যে দুটি OX অক্ষে একটি পূর্ণসংখ্যা বিন্দু পূরণ করতে চায়। আমাদের তাদের ন্যূনতম মোট ক্লান্তি খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি a =5 এর মত হয়; b =10, তাহলে আউটপুট 9 হবে, কারণ সর্বোত্তম উপায়গুলির মধ্যে একটি হল নিম্নলিখিত। প্রথম বন্ধুর ডানে তিন ধাপ সরানো উচিত, এবং দ্বিতীয় বন্ধুর বাম দিকে দুই ধাপ। সুতরাং, মোট ক্লান্তি 1 + 2 + 3 + 1 + 2 =9 হয়ে যায়।

পদক্ষেপ

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

ans := |a - b|
sum := ans / 2
return (sum + (ans mod 2)) * (sum + 1)

উদাহরণ

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

#include <bits/stdc++.h>
using namespace std;
int solve(int a, int b){
   int ans = abs(a - b);
   int sum = ans / 2;
   return (sum + (ans % 2)) * (sum + 1);
}
int main(){
   int a = 5;
   int b = 10;
   cout << solve(a, b) << endl;
}

ইনপুট

5, 10

আউটপুট

9

  1. C++ কোড মিনিমাম সর্বোচ্চ রিমুভাল গেমের পরে চূড়ান্ত নম্বর খুঁজে পেতে

  2. C++ কোড তিনটি সংখ্যা খুঁজে বের করতে যার যোগফল n

  3. যৌগিক সংখ্যা খুঁজে পেতে C++ কোড যার পার্থক্য n

  4. ন্যূনতম গাণিতিক গড় বিচ্যুতি খুঁজে পেতে C++ কোড