मान लीजिए कि हमारे पास दो संख्याएँ a और b हैं। दो मित्र OX अक्ष पर x =a और x =b स्थान पर हैं। प्रत्येक मित्र असीमित बार असीमित संख्या में किसी भी दिशा में रेखा के साथ-साथ आगे बढ़ सकता है। चलने से मित्र की थकान निम्नलिखित नियमों के अनुसार बदल जाती है:पहली चाल से थकान 1 बढ़ जाती है, दूसरी चाल से थकान 2 बढ़ जाती है और इसी तरह। उनमें से दो OX अक्ष पर एक पूर्णांक बिंदु मिलना चाहते हैं। हमें कम से कम कुल थकान ढूंढनी होगी जो उन्हें मिलनी चाहिए।
इसलिए, यदि इनपुट a =5 जैसा है; बी =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