ধরুন, আমরা একটি ক্লিনিং রোবট তৈরি করছি যেটি একটি গ্রিডে কাজ করে। গ্রিডটি 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