স্টেনরোড বীজগণিত একটি গুরুত্বপূর্ণ বীজগণিত যা বীজগণিত টপোলজিতে উঠে আসে। স্টেইনরোড বীজগণিত "স্টেনরোড স্কোয়ারস" নামে অপারেটরদের দ্বারা উত্পাদিত হয় প্রতিটি ধনাত্মক পূর্ণসংখ্যার জন্য একটির উপস্থিত থাকে i। স্কোয়ারিং অপারেশনে স্টেইনরোড বীজগণিতের জন্য "গ্রহণযোগ্য মনোমালিক্য" সমন্বিত একটি ভিত্তি রয়েছে। এই ভিত্তি উত্পন্ন করা আমাদের লক্ষ্য।
ধনাত্মক পূর্ণসংখ্যার একটি সিক্যুয়েন্সকে বলা হয় যদি প্রতিটি পূর্ণসংখ্যার পরেরটির থেকে কমপক্ষে দ্বিগুণ হয়। সুতরাং উদাহরণস্বরূপ [7,2,1]
গ্রহণযোগ্য কারণ এবং । অন্যদিকে, [3,2]
এটি গ্রহণযোগ্য নয় কারণ । (টপোলজিতে আমরা সিকোয়েন্সের জন্য লিখব [7,2,1]
)।
ডিগ্রী একটি ক্রম এটা এন্ট্রির মোট নয়। উদাহরণস্বরূপ, ডিগ্রি [7,2,1]
হ'ল । বাড়তি একটি গ্রাহ্য ক্রম, প্রথম উপাদান বিয়োগ অবশিষ্ট উপাদানের মোট তাই [7,2,1]
বাড়তি হয়েছে ।
কার্য
এমন একটি প্রোগ্রাম লিখুন যা এক জোড়া ধনাত্মক পূর্ণসংখ্যার সাথে নেয় (d,e)
এবং ডিগ্রির সমস্ত গ্রহণযোগ্য ক্রমের সেট d
এবং তার চেয়ে কম বা সমান পরিমাণে আউটপুট দেয় e
। আউটপুট একটি সেট তাই গ্রহণযোগ্য ক্রমগুলির ক্রমটি বিবেচনা করে না।
উদাহরণ:
Input: 3,1
Output: [[2,1]]
এখানে আমরা মোট 3 সহ গ্রহণযোগ্য ক্রমগুলি সন্ধান করছি two দুটি বিকল্প রয়েছে [3]
এবং [2,1]
। ( [1,1,1]
এবং [1,2]
যোগফল 3 তবে এটি গ্রহণযোগ্য নয়)। অতিরিক্ত [3]
3 এবং বাড়তি [2,1]
হয় । সুতরাং, সঙ্গে বাড়তি শুধুমাত্র ক্রম হয় [2,1]
।
Input: 6, 6
Output: [[6], [5, 1], [4, 2]] (or any reordering, e.g., [[5,1],[4,2],[6]])
যেহেতু অতিরিক্ত সর্বদা ডিগ্রির চেয়ে কম বা সমান, তাই আমাদের কোনও অতিরিক্ত শর্ত নেই। সুতরাং, আমরা শুধু ডিগ্রী 6. সব গ্রাহ্য সিকোয়েন্স অপশন আছে খুঁজে বের করার চেষ্টা করছি [6]
, [5, 1]
এবং [4, 2]
। (এগুলির অতিরিক্ত , এবং ))
Input: 10, 5
Output: [[7,3], [7,2,1], [6,3,1]]
10 ডিগ্রির গ্রহণযোগ্য ক্রমগুলি হ'ল:
[[10], [9,1], [8,2], [7,3], [7,2,1], [6,3,1]]
এর অতিরিক্ত , , , , , এবং যথাক্রমে তাই গত তিন সমস্ত কাজ।
স্কোরিং
এটি কোড গল্ফ: বাইট জেতে সংক্ষিপ্ততম সমাধান।
পরীক্ষার কেস:
আউটপুটটির যে কোনও পুনরায় ক্রম সমানভাবে ভাল, সুতরাং ইনপুট (3, 3)
, আউটপুট [[3],[2,1]]
বা [[2,1],[3]]
সমানভাবে গ্রহণযোগ্য (তবে [[1,2],[3]]
তা নয়)।
Input: 1, 1
Output: [[1]]
Input: 3, 3
Output: [[2,1], [3]]
Input: 3, 1
Output: [[2,1]]
Input: 6, 6
Output: [[6], [5, 1], [4, 2]]
Input: 6, 4
Output: [[5,1], [4,2]]
Input: 6, 1
Output: []
Input: 7, 7
Output: [[7], [6,1], [4,2,1], [5,2]]
Input: 7,1
Output: [[4,2,1]]
Input: 10, 10
Output: [[10], [9,1], [7,2,1], [6,3,1], [8,2], [7,3]]
Input: 10, 5
Output: [[7,3], [7,2,1], [6,3,1]]
Input: 26, 4
Output: [15, 7, 3, 1]
Input: 26, 6
Output: [[16, 7, 2, 1], [16, 6, 3, 1], [15, 7, 3, 1], [16, 8, 2], [16, 7, 3]]