কম্পিউটার

একটি ক্লিনিং রোবট একটি গ্রিডে সর্বাধিক কতগুলি সেল পরিষ্কার করতে পারে তা খুঁজে বের করতে C++ প্রোগ্রাম


ধরুন, আমরা একটি ক্লিনিং রোবট তৈরি করছি যেটি একটি গ্রিডে কাজ করে। গ্রিডটি h x w এর মাত্রা। পূর্ণসংখ্যা জোড়া 'ময়লা' একটি অ্যারে দেওয়া হয় যে পরিষ্কার করা প্রয়োজন যে m নোংরা কোষ আছে. পরিষ্কার রোবট, যদি একটি নির্দিষ্ট কক্ষে স্থাপন করা হয়; সেই নির্দিষ্ট সারি এবং কলামের প্রতিটি ঘর পরিষ্কার করতে পারে। সুতরাং, আমাদের কাজ হল সর্বাধিক সংখ্যক নোংরা কোষ পরিষ্কার করা। আমাদের গণনা খুঁজে বের করতে হবে এবং এটিকে আউটপুট হিসাবে প্রদর্শন করতে হবে।

সুতরাং, যদি ইনপুট হয় h =3, w =3, m =3, dirt ={{0, 0}, {1, 1}, {2, 1}}, তাহলে আউটপুট হবে 3। যদি আমরা ক্লিনিং রোবটটিকে সেল {1, 0} এ রাখুন তাহলে এটি গ্রিডের সমস্ত নোংরা কোষ পরিষ্কার করতে সক্ষম হবে৷

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

একটি মানচিত্র সংজ্ঞায়িত করুন দুটি অ্যারে hcount এবং wcount of size:100 এবং আরম্ভ করুন 0maxh =0, maxw =0, res =0 দুটি অ্যারে সংজ্ঞায়িত করুন p, qfor আরম্ভ i :=0, যখন i  

উদাহরণ

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

#include নেমস্পেস ব্যবহার করে std;const int INF =1e9;int solve(int h, int w, int m, vector> dirt){ map, int> pairMap; int hcount[100] ={0}, wcount[100] ={0}, maxh =0, maxw =0, res =0; ভেক্টরp, q; জন্য (int i =0; i > dirt ={{0, 0}, {1, 1}, {2, 1}}; cout<<সমাধান(h, w, m, ময়লা); রিটার্ন 0;

ইনপুট

3, 3, 3, {{0, 0}, {1, 1}, {2, 1}}

আউটপুট

3

  1. একটি গ্রিডে আলোকিত কোষের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

  2. একটি প্রদত্ত গ্রাফে সেতুর প্রান্তের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

  3. একটি গ্রাফ থেকে সর্বাধিক স্কোর কমানো যেতে পারে তা খুঁজে বের করতে C++ প্রোগ্রাম

  4. একটি পাথ তৈরি করতে একটি গ্রিডে ব্লক করার জন্য সেলের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম