यहाँ दिए गए प्रोग्रामिंग कार्य का हिंदी अनुवाद प्रस्तुत है: चक्रीय स्थानांतरण और दोहराई जाने वाली उप-स्ट्रिंग्स की खोज

C# Hard loops

कार्य «यहाँ दिए गए प्रोग्रामिंग कार्य का हिंदी अनुवाद प्रस्तुत है: चक्रीय स्थानांतरण और दोहराई जाने वाली उप-स्ट्रिंग्स की खोज»

दी गई एक स्ट्रिंग S है, जो छोटे लैटिन अक्षरों से बनी है। स्ट्रिंग को बाईं ओर K स्थानों पर चक्रीय रूप से स्थानांतरित करना आवश्यक है (K स्ट्रिंग की लंबाई से अधिक हो सकता है)। स्थानांतरण के बाद, नई स्ट्रिंग में L लंबाई (L दी गई है) की सभी गैर-अतिव्यापी दोहराई जाने वाली उपस्ट्रिंग खोजें। दोहराई जाने वाली उपस्ट्रिंग वह उपस्ट्रिंग है जो स्ट्रिंग में दो या अधिक बार आती है, और इसके प्रवेश एक-दूसरे को ओवरलैप नहीं करने चाहिए। ऐसी उपस्ट्रिंग की संख्या और उपस्ट्रिंग को शब्दकोशीय क्रम में आउटपुट करें। यदि ऐसी कोई उपस्ट्रिंग नहीं है, तो 0 आउटपुट करें।

इनपुट प्रारूप

<p>पहली पंक्ति में एक पूर्णांक N (1 ≤ N ≤ 1000) — स्ट्रिंग की लंबाई। दूसरी पंक्ति में स्वयं स्ट्रिंग S। तीसरी पंक्ति में एक पूर्णांक K (0 ≤ K ≤ 10^9) — शिफ्टों की संख्या। चौथी पंक्ति में एक पूर्णांक L (1 ≤ L ≤ N) — उपस्ट्रिंग की लंबाई।</p>

आउटपुट प्रारूप

<p>पहली पंक्ति में एक पूर्णांक M प्रिंट करें — लंबाई L के अद्वितीय दोहराए जाने वाले गैर-अतिव्यापी उप-स्ट्रिंग्स की संख्या। यदि M > 0 है, तो अगली M पंक्तियों में उप-स्ट्रिंग्स को शब्दकोशीय क्रम में प्रिंट करें।</p>

उदाहरण

उदाहरण 1

इनपुट
5 abcde 3 2
आउटपुट
0

उदाहरण 2

इनपुट
10 abracadabra 5 4
आउटपुट
1 abra
main.cs