আমার বিশ্ববিদ্যালয় কোড চ্যালেঞ্জ প্রতিযোগিতার অনুমতি নিয়ে চ্যালেঞ্জ নেওয়া হয়েছে
মোবাইল ফোনে আমাদের যে নির্ভরতা রয়েছে তা আমাদের প্রতি ব্যাটারির সর্বাধিক স্তর পর্যন্ত প্রতি রাতে সেগুলি চার্জ করে দেয়, তাই আমরা পরের দিনের মাঝামাঝি সময়ে বিদ্যুতের বাইরে চলে যাওয়ার ঝুঁকিটি চালাই না। এমন কি এমন লোকেরাও রয়েছে যারা দিনের বেলা কোনও ফ্রি আউটলেট দেখে, যা ঘটতে পারে তার জন্য এটি চার্জ করে দেয়।
আমি তাদের মধ্যে একজন।
কয়েক বছর ধরে, আমি প্রতি রাতে সর্বোচ্চ ব্যাটারি চার্জ না করার জন্য আমার কৌশলটি পরিমার্জন করেছি। আমার পুরোপুরি পরিচিত পুনরাবৃত্তিমূলক রুটিনগুলির সাথে, আমি দিনের আংশিক রিচার্জগুলি করতে সক্ষম হব (এবং কত ইউনিট স্তর বৃদ্ধি করবে) এবং প্রতিটি চার্জের মধ্যে ব্যাটারির স্তরকে কী হ্রাস করবে সে সম্পর্কে আমি স্পষ্ট। এই ডেটার সাহায্যে, প্রতি রাতে আমি সর্বনিম্ন ব্যাটারি স্তরটি গণনা করি আমাকে পরের দিন বাসা ছেড়ে চলে যেতে হবে যাতে এটি কখনও আমার স্ব-চাপানো দ্বিগুণের নীচে না যায়।
আমি এখনও যা আয়ত্ত করতে সক্ষম হইনি তা হ'ল একই গণনা যখন আমি প্রতিষ্ঠিত রুটিনটি ছেড়ে যাই এবং কাজগুলি করার জন্য আমার কাছে বেশ কয়েকটি বিকল্প থাকে। এটি ঘটেছিল, উদাহরণস্বরূপ, যে দিনগুলিতে আমি অন্য কোনও শহরে যাচ্ছি যেখানে আমি বিভিন্ন উপায়ে পৌঁছাতে পারব।
সমস্যার প্রতি আমার প্রথম পদ্ধতির মধ্যে, আমি ধরে নিচ্ছি যে আমি উপরের-বাম কোণ থেকে নীচে-ডান কোণে একটি "চেসবোর্ড" এর আশেপাশে যেতে চাই। প্রতিটি "সেল" এ আমি মোবাইলটিকে একটি নির্দিষ্ট পরিমাণে চার্জ করতে পারি, না পারব না এবং এর লোডের স্তর হ্রাস পাবে।
চ্যালেঞ্জ
পূর্ণসংখ্যার একটি FxC ম্যাট্রিক্স দেওয়া, আউটপুট ন্যূনতম ব্যাটারি স্তর স্তর পরিমাণ আমি উপরের বাম কোণে নীচে ডান দিকে যেতে প্রয়োজন লোড স্তর কখনও 2 ইউনিটের নীচে না পড়ে।
ম্যাট্রিক্সে, ধনাত্মক সংখ্যাটি নির্দেশ করে যে আমি আমার পথ অনুসরণ করে আবার শুরু করার আগে আমি আমার মোবাইল ফোনটি কতটা চার্জ করতে পারি, যখন একটি নেতিবাচক সংখ্যা নির্দেশ করে যে কোনও আউটলেট নেই এবং মোবাইলের ব্যাটারি তার পরিমাণের পরিমাণের পরিমাণ কমিয়ে দেয়। এটি গ্যারান্টিযুক্ত যে উত্স এবং গন্তব্য কোষের পরিমাণগুলি (শীর্ষ-বাম এবং নীচে-ডান কোণে) সর্বদা 0 থাকে এবং বাকি মানগুলি (পরম মান) 100 এর বেশি হয় না।
প্রদত্ত উদাহরণ :
আমার যে ব্যাটারি কম ব্যাটারি প্রয়োজন তা হ'ল:
এবং আমার সর্বনিম্ন ব্যাটারি স্তরের পরিমাণের প্রয়োজন 4
মন্তব্য
- শুরুটি সর্বদা শীর্ষ বাম কোণে হতে চলেছে
- শেষটি সর্বদা নীচের অংশে ডানদিকে থাকবে
- আপনি ইতিমধ্যে পাস করেছেন এমন কোনও কক্ষে আপনি যেতে পারবেন না। উদাহরণ: একবার অবস্থান (0,1) এ গেলে আপনি প্রাথমিক বিন্দুতে (0,0) যেতে পারবেন না
- আপনার ব্যাটারি স্তরটি (কোনও কারণে) ২ এর নিচে যেতে পারে না
- আপনি ধরে নিতে পারেন যে সর্বদা শুরু এবং শেষ থাকবে
- আপনার প্রয়োজন হলে 1-মাত্রিক অ্যারেগুলি বহুমাত্রিক হিসাবে নিতে পারেন
[1,2,3] == [[1,2,3]]
- একাধিক সঠিক (সর্বনিম্ন প্রয়োজনীয় চার্জ) পাথ থাকতে পারে
- আপনার লক্ষ্যটি কেবলমাত্র সর্বনিম্ন প্রাথমিক ব্যাটারির স্তরটি আউটপুট করা, রুট নয়
- আপনি কেবল উলম্ব এবং অনুভূমিকভাবে যেতে পারেন (তির্যক নয়)
পরীক্ষার কেস
[0, 0] => 2
[0, 1, 0] => 2
[0, -1, 0] => 3
[0, 15, -20, 5, 0] => 7
[[0, -3],[-5, 0]] => 5
[[0, -5, -9, 5], [-3, 5, 2, -2], [2, -4, -4, 0]] => 5
[[0, -1, 1, -1], [-1, -1, -1, -1], [-1, 1, -1, -1], [1, 1, -1, 0]] => 4
[[0,1,-1],[-9,-9,1],[-9,1,-1],[-9,-1,-9],[-9,1,0]]
0s
বাম কোণে একটি এবং অন্যটি নীচে ডানদিকে রয়েছে