आप कूल्हे नया किराने की दुकान आधा फूड्स से कम एक कर्मचारी हैं, और यह पहले दिन है धन्यवाद क्रिसमस ईस्टर। चूंकि स्टोर को उनके खाद्य पदार्थों को प्राप्त करने के लिए भाग रहे ग्राहकों के साथ पैक किया जाएगा, इसलिए सभी को उचित लाइनों में भेजने के लिए स्टोर को ट्रैफिक मैनेजर की आवश्यकता होती है। आलसी होने के नाते, आप इसे स्वचालित करना चाहेंगे ताकि आप सभी को टर्की हैम लेने से पहले डेली हिट कर सकें । हालाँकि, आपके पास आपके पास अपना फोन है, और उस पर लंबे कार्यक्रमों को कोड करना एक वास्तविक दर्द है - इसलिए आपको अपने निंजा कोड-गोल्फ कौशल का भंडाफोड़ करने की आवश्यकता है ।
चुनौती
चलो एक दो-आयामी ग्रिड पर किराने की दुकान की कल्पना करते हैं। यहाँ एक नमूना ग्रिड विच्छेदित करने के लिए है:
e
s
s
s
Y
# # #s #
#s # #s #
#s # #s #
#s #s #s #
#3 #1 #4 #
x x x x
ग्रिड एक के साथ शुरू होता है e, जो बाकी स्टोर के लिए "आउटलेट" का प्रतिनिधित्व करता है। हर पीढ़ी, ग्रिड के सभी आउटलेट sसीधे नीचे एक दुकानदार ( ) को नियुक्त करते हैं। दुकानदार प्रत्येक पीढ़ी को तब तक नीचे ले जाते हैं जब तक कि वे आप तक नहीं पहुँचते ( Y)। जब एक दुकानदार आपके पास एक ही पंक्ति में पहुंचता है, तो आपको दुकानदार को लाइन की शुरुआत में दुकानदारों को कम से कम राशि के साथ टेलीपोर्ट करना होगा। एक दुकानदार तुरंत लाइन में जाता है जब वे पंक्ति के साथ आगे बढ़ते हैं Y, बीच में कोई पीढ़ी नहीं होती है। लाइनों को #एस द्वारा दर्शाया जाता है - एस के बाद का कॉलम #एक लाइन है। दुकानदार लाइन के अंत तक जाते हैं (एक निकास द्वारा दर्शाया गया है x), और फिर 1और के बीच एक यादृच्छिक संख्या में बदल जाते हैं5। प्रत्येक पीढ़ी, आपको दुकानदारों की संख्या में कमी करनी चाहिए 1- जब कोई दुकानदार पहुंचेगा 0, तो वे जांच कर रहे होंगे और वे दुकान छोड़ देंगे।
इस तरह एक ग्रिड के इनपुट को देखते हुए, किराने की दुकान की अगली पीढ़ी को आउटपुट करें (सभी दुकानदारों को एक साथ नीचे ले जाएं, दुकानदारों को पुनर्निर्देशित करें, और यदि वे काम कर रहे हैं तो उन्हें छोड़ दें)।
नमूने
इनपुट:
e
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
आउटपुट:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
इनपुट:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
उत्पादन
e
s
Y
#s # # #
# # # #
# # # #
# # # #
# # # #
x x x x
इनपुट:
e
Y
# # # #
# # # #
# # # #
#s # # #
# # # #
x x x x
(संभव) आउटपुट:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
इनपुट:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
आउटपुट:
e
s
Y
# #s # #
# # # #
# # # #
# # # #
#2 # # #
x x x x
इनपुट:
e
Y
# # # #
# # # #
# # # #
# # # #
#1 # # #
x x x x
आउटपुट:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
यह कोड-गोल्फ है , इसलिए सबसे छोटा कोड जीतता है।