मान लीजिए कि एक पथ में n ब्लॉक हैं, और एक कार्यकर्ता ब्लॉकों पर रंगीन टाइलें लगा रहा है। कार्यकर्ता इस तरह से ब्लॉक लगा रहा है कि यदि पथ में एक ब्लॉक संख्या 4 या/और 2 से विभाज्य है लेकिन 42 नहीं है, तो वह वहां एक रंगीन टाइल लगाता है। हमें यह पता लगाना होगा कि वह कितने ब्लॉकों को कवर कर सकता है यदि उसने रंगीन टाइलों की k संख्या से शुरुआत की है।
इसलिए, यदि इनपुट k =16 जैसा है, तो आउटपुट 32 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- रक्षा मंत्रालय =10^9 + 7
- भागफल :=(k / 20) का न्यूनतम मान
- शेष :=k mod 20
- यदि शेषफल 0 के समान है, तो
- रिटर्न ((42 * भागफल - 2) मॉड एमओडी)
- अन्यथा,
- रिटर्न ((42 * भागफल + 2 * शेष) मॉड एमओडी)
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(k): MOD = 10**9 + 7 quotient = k // 20 remainder = k % 20 if remainder == 0: return ((42 * quotient - 2) % MOD) else: return ((42 * quotient + 2 * remainder) % MOD) print(solve(16))
इनपुट
16
आउटपुट
32