ধরুন আমাদের দুটি মান আছে p এবং q, আমাদেরকে অনন্য স্কোয়ারের সংখ্যা খুঁজে বের করতে হবে যা একটি গ্রিড থেকে তৈরি করা যেতে পারে p সারি এবং q কলাম যেখানে পয়েন্টগুলি সমানভাবে স্থাপন করা হয়েছে। উত্তরটি খুব বড় হলে রিটার্ন ফলাফল মোড 10^9 + 7। এই সমস্যায়, একটি বর্গ হল 4 পয়েন্টের একটি সেট যা একটি বর্গক্ষেত্রের চারটি শীর্ষবিন্দু তৈরি করে। বর্গক্ষেত্রের দিকগুলির দৈর্ঘ্য অবশ্যই একই হতে হবে এবং এটি সর্বদা গ্রিডের অক্ষগুলির সাথে সারিবদ্ধ হওয়ার প্রয়োজন নেই৷
সুতরাং, যদি ইনপুট হয় p =4, q =4, তাহলে আউটপুট হবে 20।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
আমি ন্যূনতম r থেকে c, do,
পরিসরে-
ans :=ans +(r - i) *(c - i) * i
-
উত্তর দিন মোড (10^9 + 7)
-
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
class Solution: def solve(self, r, c): ans = 0 for i in range(min(r, c)): ans += (r - i) * (c - i) * i return ans % (10 ** 9 + 7) ob = Solution() print(ob.solve(4,4))
ইনপুট
p = 4 q = 4
আউটপুট
20