ধরুন আমাদের কাছে এই জাতীয় একটি ম্যাট্রিক্স রয়েছে:
11111
12221
12321
12221
11111
এই ম্যাট্রিক্স একটি ভূখণ্ডকে উপস্থাপন করে এবং প্রতিটি ঘর ভূখণ্ডের একটি অংশকে উপস্থাপন করে। প্রতিটি ঘরের সংখ্যাটি তার দহনযোগ্যতা অনুসারে ভূখণ্ডের অংশটি পুরোপুরি পোড়াতে হবে (মিনিটের মধ্যে, যদি কোনও পরিমাপের ইউনিট প্রয়োজন হয়) প্রতিনিধিত্ব করে । যদি কোনও প্রদত্ত অবস্থানে (কোষ) আগুন শুরু হয় তবে আগুনটি সংলগ্ন কোষগুলিতে ছড়িয়ে দেওয়ার আগে সেই কোষটি পুরোপুরি পোড়াতে হবে (অনুভূমিক নয় কেবল অনুভূমিক এবং উল্লম্ব)। সুতরাং, যদি কেন্দ্রের অবস্থানে আগুন শুরু হয় তবে আগুন লাগবে:
11111 11111 11111 11011 10001 00000
12221 3 m. 12221 2 m. 12021 1 m. 11011 1 m. 00000 1 m. 00000
12321 -----> 12021 -----> 10001 -----> 00000 -----> 00000 -----> 00000
12221 12221 12021 11011 00000 00000
11111 11111 11111 11011 10001 00000
ব্যাখ্যা:
- আগুনের সূচনা [2,2] (0 ভিত্তিক) থেকে শুরু হয়, যার বার্ন টাইম 3 থাকে।
- 3 মিনিটের পরে, [1,2], [2,1], [2,3], [3,2] জ্বলতে শুরু করে।
- 2 মিনিটের পরে, সেই কোষগুলি জ্বলন শেষ করে এবং আগুনটি সমস্ত সংলগ্ন কোষগুলিতে প্রচার করে তবে [0,2], [2,0], [2,4], [0,4] পোড়াতে আরও 1 মিনিটের প্রয়োজন, তাই
- 1 মিনিটের পরে, সেই ঘরগুলি পোড়া হয় এবং কোষটি তাদের সংলগ্ন কোষগুলিতে প্রচার করে।
- আরও 1 মিনিটের পরে, ধাপ 3 শেষ থেকে জ্বলন্ত এবং আগুনের বাকি কোষগুলি তাদের সংলগ্ন কোষগুলিতে প্রচার করে (যা ইতিমধ্যে পুড়ে গেছে, তাই কিছুই ঘটে না)।
- শেষ মুহুর্তের 1 পরে, পুরো অঞ্চলটি আগুন জ্বলে ওঠে।
সুতরাং এই ক্ষেত্রে সমাধানটি 8 মিনিট। আগুনটি যদি শীর্ষের বামতম কোষে শুরু হয় [0,0]:
11111 01111 00111 00011 00001 00000
12221 1 12221 1 02221 1 01221 1 00121 1 00011 1
12321 --> 12321 --> 12321 --> 02321 --> 01321 --> 00321 -->
12221 12221 12221 12221 02221 01221
11111 11111 11111 11111 11111 01111
00000 00000 00000 00000 00000
00000 1 00000 1 00000 1 00000 1 00000
00221 --> 00110 --> 00000 --> 00000 --> 00000
00221 00121 00020 00010 00000
00111 00011 00001 00000 00000
সুতরাং এখন মোট সময় 10 মিনিট।
চ্যালেঞ্জ
একটি এনএক্সএম ম্যাট্রিক্স (এন> 0, এম> 0) দেওয়া হয়েছে যা প্রতিটি কক্ষের পুরোপুরি গ্রাস করার প্রয়োজনের প্রতিনিধিত্ব করে, সেই সংক্ষিপ্ততম প্রোগ্রাম / ফাংশন লিখুন যা সেই ম্যাট্রিক্স এবং আগুনের যে অবস্থানের সাথে সংখ্যার পূর্ণসংখ্যার সংযোজন নেয় write , এবং পুরো অঞ্চলটিকে পুরোপুরি গ্রাস করতে আগুনের জন্য প্রয়োজনীয় সময়টি ফেরত / মুদ্রণ করে।
- প্রতিটি ঘরে একটি ধনাত্মক (শূন্য নয়) বার্ন সময় থাকবে। আপনি সেলগুলির সর্বাধিক মান ধরে নিতে পারবেন না।
- ম্যাট্রিক্সটি বর্গক্ষেত্র বা প্রতিসাম্যযুক্ত হওয়ার দরকার নেই।
- আপনার পছন্দ অনুসারে ম্যাট্রিক্স 0-সূচকযুক্ত বা 1-সূচকযুক্ত হতে পারে।
- অবস্থানটি পূর্ণসংখ্যার একটি টিপল সহ একক প্যারামিটার হিসাবে দেওয়া যেতে পারে, অন্য যুক্তিসঙ্গত বিন্যাসের যাই হোক না কেন তার দুটি পৃথক পরামিতি।
- ম্যাট্রিক্সের মাত্রাগুলি ইনপুট পরামিতি হিসাবে নির্দিষ্ট করা যায় না।
- প্রতিটি মধ্যবর্তী পদক্ষেপে আপনাকে আউটপুট দেওয়ার দরকার হবে না, যতটা সময় চেয়েছে। পদক্ষেপগুলি কোনওভাবে দৃশ্যমান হলে আমি অভিযোগ করব না।
আরেকটি উদাহরণ:
Fire starts at [1,1] (a '>' represents a minute):
4253 4253 4253 4153 4043 3033 2023 0001 0000
2213 > 2113 > 2013 > 1003 > 0002 > 0001 > 0000 >> 0000 > 0000
1211 1211 1211 1111 1001 0000 0000 0000 0000
Output: 9
এটি কোড-গল্ফ , তাই প্রতিটি ভাষার জন্য সংক্ষিপ্ততম প্রোগ্রামটি জয় পেতে পারে!
1
থেকেM*N