বাইনারি ব্লক ডায়াগোনাল ম্যাট্রিক্সগুলি বিবেচনা করুন যা মূল ত্রিভুজটিতে 1 এর স্কোয়ার ব্লক রয়েছে এবং অন্য কোথাও 0 হয়। আসুন এই জাতীয় ম্যাট্রিকগুলিকে "বৈধ" ম্যাট্রিকগুলি বলি।
উদাহরণস্বরূপ, এখানে কিছু বৈধ 4x4 ম্যাট্রিক রয়েছে:
1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1
0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1
0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1
0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1
মনে রাখবেন যে এই জাতীয় ম্যাট্রিকগুলি বর্ণনা করার একটি বিকল্প উপায় হ'ল উপরের বাম থেকে নীচে ডানদিকে কোণার কোণে স্পর্শ করে অন্য কোথাও 0 বর্গাকার ব্লকের একটি শৃঙ্খলা রয়েছে।
বিপরীতে, এখানে কিছু অবৈধ 4x4 ম্যাট্রিক রয়েছে:
1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0
0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0
1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0
0 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0
আপনি একটি দেওয়া হবে n
দ্বারা n
ইনপুট হিসাবে বাইনারি ম্যাট্রিক্স - ন্যূনতম নম্বর কি 0
আপনাকে সেট করতে হবে বিট 1
অর্ডার একটি বৈধ ম্যাট্রিক্স পেতে?
আপনি যে কোনও সুবিধাজনক স্ট্রিং, তালিকা বা ম্যাট্রিক্স ফর্ম্যাটটিকে 0 এবং 1 এর ম্যাট্রিক্সের প্রতিনিধিত্ব n
করে n
(যতক্ষণ না এটি প্রস্রোসেসড নয়) লিখতে পারেন । সারিগুলি অবশ্যই কোনওভাবে স্পষ্টভাবে পৃথক করা উচিত, সুতরাং বিটগুলির 1D অ্যারের মতো ফর্ম্যাটগুলি অনুমোদিত নয়।
এটি কোড-গল্ফ , তাই আপনার প্রোগ্রামে বাইটের সংখ্যা হ্রাস করা লক্ষ্য।
উদাহরণ
উদাহরণস্বরূপ, যদি ইনপুট হয়
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 1
তাহলে উত্তরটি হ'ল 5, যেহেতু আপনি পাঁচটি 0
বিট সেট 1
করতে পারেন:
1 0 0 0 0
0 1 1 0 0
0 1 1 0 0
0 0 0 1 0
0 0 0 0 1
এবং এটি প্রয়োজনীয় সর্বনিম্ন সংখ্যা। তবে, যদি ইনপুট ছিল
0 0 0 0 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
তারপরে উত্তরটি 24, যেহেতু একমাত্র বৈধ 5x5 ম্যাট্রিক্স যেখানে উপরের ডানদিকটি 1
সমস্ত 1
s এর ম্যাট্রিক্স ।
পরীক্ষার মামলা
টেস্টগুলি এখানে পূর্ণসংখ্যার 2D অ্যারে হিসাবে প্রতিনিধিত্ব করা হয়।
[[0]] -> 1
[[1]] -> 0
[[0,1],[0,0]] -> 3
[[1,0],[0,0]] -> 1
[[0,0,0],[0,1,0],[0,0,0]] -> 2
[[0,1,0],[0,0,0],[0,1,0]] -> 7
[[0,1,0],[1,0,0],[0,0,1]] -> 2
[[1,1,1],[1,1,1],[1,1,1]] -> 0
[[0,0,0,0],[0,0,1,0],[0,1,0,0],[0,0,0,0]] -> 4
[[0,0,1,0],[0,0,0,0],[0,0,0,0],[0,0,0,1]] -> 8
[[0,0,1,0],[0,0,0,0],[0,0,0,0],[0,0,1,0]] -> 14
[[0,0,1,0],[0,0,0,0],[0,0,0,0],[0,1,0,0]] -> 14
[[0,0,0,0,0],[0,0,0,0,0],[0,1,0,0,0],[0,0,0,0,1],[0,0,0,0,0]] -> 7
[[0,0,0,0,0],[0,0,0,0,0],[1,0,0,0,0],[0,0,0,0,1],[0,0,0,0,0]] -> 11
[[0,0,0,0,0],[0,0,1,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,1]] -> 5
[[0,0,0,0,1],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]] -> 24
[[0,0,0,1,0],[0,0,0,0,1],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]] -> 23
[[0,1,0,0,0],[1,0,0,0,0],[0,0,1,0,0],[0,0,0,0,1],[0,0,0,1,0]] -> 4
[[0,1,1,1,0],[0,1,1,0,1],[0,1,1,1,0],[0,1,0,0,1],[0,0,0,0,0]] -> 14
মন্তব্য
- সম্পর্কিত চ্যালেঞ্জ: একটি ব্লক-ডায়াগোনাল ম্যাট্রিক্স মুদ্রণ করুন
- অনুপ্রেরণা: স্বাধীনতা কারখানা, গুগল কোড জ্যাম 2016 সমস্যা 2 ডি Pro