কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম: ২D প্লেনে একটি বিন্দু থেকে অন্য বিন্দু পড়তে চলে মোভের সিকোয়েন্স


মান লিজিয়ে, ২D প্লেনে দুটি বিন্দু a এবং b আছে যাদের কোঅর্ডিনেট যথাক্রমে (x1, y1) এবং (x2, y2)। বর্তমানে আমরা 'a' বিন্দুতে আছি এবং আমরা ১ একক দূরত্বে খাড়া বা দাঁড়ি দিকে যেতে পারি। আমরা a থেকে b-এ যাব, তারপর আবার a-তে ফিরে আসব, এবং আবার b-এ যাব। একই বিন্দু দ্বিবার পার করা অনুমোদিত নয়, a এবং b বাদে। আমাদের লক্ষ্য হলো পুরো যাত্রায় আমরা কী কী মোভ করব তা বের করা এবং আউটপুট করা। ডানে যাওয়ায় 'R', বামে যাওয়ায় 'L', উপরে যাওয়ায় 'U', নিচে যাওয়ায় 'D' প্রিন্ট করব। একটি বিষয় লক্ষ্য করুন যে x2 > x1 এবং y2 > y1।

যেমন, ইনপুট হলে x1 = 0, y1 = 1, x2 = 3, y2 = 4, তবে আউটপুট হবে UUURRRDDDLLLLUUUURRRRDRDDDDLLLLU

সমাধানের ধাপসমূহ

এই সমস্যাটি সমাধান করার জন্য নিচের ধাপগুলো অনুসরণ করব:

s := খালি স্ট্রিং i := 0 থেকে y2-y1-১ পর্যন্ত: s-র শেষে "U" যোগ করুন i := 0 থেকে x2-x1-১ পর্যন্ত: s-র শেষে "R" যোগ করুন i := 0 থেকে y2-y1-১ পর্যন্ত: s-র শেষে "D" যোগ করুন i := 0 থেকে x2-x1-১ পর্যন্ত: s-র শেষে "L" যোগ করুন s-র শেষে "LU" যোগ করুন i := 0 থেকে y2-y1-১ পর্যন্ত: s-র শেষে "U" যোগ করুন i := 0 থেকে x2-x1-১ পর্যন্ত: s-র শেষে "R" যোগ করুন s-র শেষে "RD" যোগ করুন s-র শেষে "RD" যোগ করুন i := 0 থেকে y2-y1-১ পর্যন্ত: s-র শেষে "D" যোগ করুন i := 0 থেকে x2-x1-১ পর্যন্ত: s-র শেষে "L" যোগ করুন s-র শেষে "LU" যোগ করুন return s

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন আরও ভালো বুঝতে:

#include <bits/stdc++.h> using namespace std; string solve(int x1, int y1, int x2, int y2){    string s = "";    for(int i = 0; i < y2 - y1; i++)       s.append("U");    for(int i = 0; i < x2 - x1; i++)       s.append("R");    for(int i = 0; i < y2 - y1; i++)       s.append("D");    for(int i = 0; i < x2 - x1; i++)       s.append("L");    s.append("LU");    for(int i = 0; i < y2 - y1; i++)       s.append("U");    for(int i = 0; i < x2 - x1; i++)       s.append("R");   s.append("RD"); s.append("RD");    for(int i = 0; i < y2 - y1; i++)         s.append("D"); for(int i = 0; i < x2 - x1; i++) s.append("L"); s.append("LU"); return s; } int main() { int x1 = 0, y1 = 1, x2 = 3, y2 = 4; cout<< solve(x1, y1, x2, y2); return 0; }

ইনপুট

0, 1, 3, 4

আউটপুট

UUURRRDDDLLLLUUUURRRRDRDDDDLLLLU

  1. C++ প্রোগ্রাম: দিয়ে দেয়া ম্যাট্রিক্স থেকে প্যালিনড্রোমিক ম্যাট্রিক্স তৈরি সম্ভব কিনা

  2. C++ প্রোগ্রাম: গ্রাফে সুপার ভেরটেক্স চিহ্নিতকরণ

  3. C++ প্রোগ্রাম: গ্রিডে আলোকিত কক্ষের সংখ্যা গণনা

  4. C++ প্রোগ্রাম: গ্রাফ থেকে এজ মুছে স্কোর সর্বনিম্ন করায় সর্বোচ্চ কমতি