मान लीजिए, हमें दो बिंदु a = (x1, y1) और b = (x2, y2) दिए गए हैं। दो बिंदुओं के बीच मैनहट्टन दूरी dist(a, b) = |x1 - x2| + |y1 - y2| है। यदि बिंदु a का निर्देशांक (0, 0) है और बिंदु b का निर्देशांक (x, y) है, तो हमें एक बिंदु c ढूंढना है जैसे कि dist(a, c) = dist(a, b)/2 और dist(b, c) = dist(a, b)/2। यदि ऐसा कोई बिंदु उपलब्ध नहीं है तो, हम -1, -1 प्रिंट करते हैं।
उदाहरण के लिए, यदि इनपुट x = 13, y = 7 है, तो आउटपुट 6, 4 होगा।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
if x mod 2 is same as 0 and y mod 2 is same as 0, then: print( x / 2, y / 2) otherwise when (x + y) mod 2 is same as 1, then: print(-1, -1) Otherwise, print(x / 2, (y + 1) / 2)
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#includeusing namespace std; #define N 100 void solve(int x, int y) { if(x % 2 == 0 && y % 2 == 0) cout<< x / 2 <<' '<< y / 2 < इनपुट
13, 7आउटपुट
6 4