บทนำ
คุณกำลังนั่งอยู่กับเพื่อนร่วมงานของคุณทานอาหารกลางวันและคุยโม้กับเขาเกี่ยวกับโปรเจ็กต์ล่าสุดและที่ยิ่งใหญ่ที่สุดที่คุณคาดไม่ถึง เจ็บป่วยและเบื่อกับการแสดงความเห็นแก่ตัวอย่างต่อเนื่องเขา / เธอจะให้ความท้าทายแก่คุณดังนั้นคุณจะต้องปิดตัวลง แน่นอนว่าคุณเป็นคนที่เห็นแก่ตัวและมีความสุขไปด้วยโชคคุณยอมรับ (เพราะคุณต้องยอมรับความท้าทายแต่ละอย่างและทุกครั้ง) ความท้าทายในขณะที่เขา / เธออธิบายมันคือได้รับการป้อนข้อมูลของบล็อกของข้อความที่มี 1 หรือมากกว่าของตัวละครแต่ละตัวใน!@#$^&*, การส่งออกในรูปแบบที่เหมาะสมใด ๆ พิกัดของสวิทช์ (e) ที่มี / มี "กับ"
ตามที่เพื่อนร่วมงานของคุณสวิตช์เป็น$และสวิตช์ถูกจัดประเภทเป็น "เปิด" ถ้าและถ้าตรงตามเกณฑ์อย่างน้อย 1 ในเกณฑ์ต่อไปนี้:
^ล้อมรอบด้วยทั้งหมด ดังนั้น...^^^ ^$^ ^^^ผลลัพธ์ในสวิตช์ "เปิด"
&ล้อมรอบด้วยทั้งหมด ดังนั้น...&&& &$& &&&ผลลัพธ์ในสวิตช์ "เปิด"
มันมีการครอบคลุมอย่างน้อย
*สองด้านด้วย ตัวอย่างเช่น*** &$& ***ส่งผลให้สวิตช์ "เปิด" แต่
&*& &$& &*&ไม่ได้เนื่องจากสวิตช์ไม่ได้ครอบคลุมทั้งสองด้านโดย
*sมีอย่างน้อย 1
!และ / หรือ 1@ในมุมใด ๆ รอบ ๆ สิ่งนี้จะไม่นับหากสิ่งเหล่านี้ไม่ได้อยู่ในมุมหนึ่ง ดังนั้น...!&& ^$@ @&!ส่งผลให้สวิตช์ "เปิด" เนื่องจากมีอย่างน้อย 1
!และ / หรือ@อย่างน้อย 1 ในมุม (ในกรณีข้างต้นมี 2 ใช้ได้!และ 1 ถูกต้อง@ใน 3 มุม) และ...&!& ^$@ ^!&ไม่ได้แม้ว่าจะมี 2
!และ 1@เนื่องจากไม่มีของพวกเขาอยู่ในใด ๆของมุม1 หรือมากกว่า
#นั้นไม่ได้อยู่ข้างใด ๆรอบสวิตช์ยกเว้นอย่างน้อย 1&ล้อมรอบสวิตช์ กล่าวอีกนัยหนึ่งถ้ามีอย่างน้อย 1#ของขวัญอยู่ด้านข้างมันแทนที่กฎอื่น ๆ ทั้งหมดเว้นแต่จะมี&ของขวัญ ดังนั้น:#&* *$* !**ส่งผลให้สวิตช์ "เปิด" แม้ว่ามี
#อยู่เนื่องจากมี&สวิตช์อยู่รอบ ๆ และจะปฏิบัติตามกฎอย่างน้อย 1 ข้อด้านบน อย่างไรก็ตามหากเครื่องหมายอัศเจรีย์ไม่ปรากฏเช่นนั้น:#&* *$* ***สวิตช์จะปิดเนื่องจากไม่ปฏิบัติตามกฎข้างต้นอย่างน้อยหนึ่งข้อ ดังนั้นแม้ว่าสวิตช์อาจถูกล้อมรอบด้วย a
#และ a&ก็จะยังคงปิดอยู่เว้นแต่จะปฏิบัติตามกฎเหล่านี้อย่างน้อยหนึ่งกฎ นอกจากนี้ยังมีต้องเสมอเป็น> = 1: 1 อัตราส่วนระหว่าง&และ#สำหรับสวิทช์ที่ถูกต้อง ตัวอย่างเช่น#&! *$* **#จะยังคงเป็นสวิตช์ที่ไม่ถูกต้องแม้ว่าจะเป็นไปตาม 1 ของกฎเหล่านี้เนื่องจากมี 2
#วินาที แต่มีเพียง 1 เท่านั้น&และไม่ใช่อัตราส่วน> = 1: 1 ระหว่าง&s และ#s ในการทำให้ข้อมูลนี้ถูกต้องคุณจะต้องเพิ่ม 1 ตัวหรือมากกว่านั้น&ไปยังขอบใด ๆ เพื่อที่จะรักษาสมดุลของจำนวน#s และ&s#&! *$& &*# 3:2 ratio between &s and #sสุดท้าย ...
#^^ ^$* @^!ให้ผลลัพธ์เป็นสวิตช์ "ปิด" แม้ว่าจะเป็นไปตามกฎด้านบนอย่างน้อย 1 ข้อเนื่องจากมีอย่างน้อย 1
#รอบและไม่มีความ&สมดุลใด ๆสวิทช์ที่ถูกต้องจะเพียง แต่จะอยู่ภายในการป้อนข้อมูลและดังนั้นแต่ละที่ถูกต้อง
$จะต้องถูกล้อมรอบสมบูรณ์โดยใด ๆ 8 ตัวละครที่ถูกต้อง ตัวอย่างเช่นหากอินพุตทั้งหมดเป็น:*$* !$! !!!ด้านบน
$เป็นมั่นเหมาะไม่สวิทช์ที่ถูกต้องตั้งแต่สวิทช์ที่อยู่บนขอบและดังนั้นจึงสวิทช์ไม่ได้ล้อมรอบไปด้วย 8 ตัวอักษรที่ถูกต้อง ในกรณีนี้ไม่ควรพิจารณาถึงการสลับ อย่างไรก็ตามสวิตช์ที่อยู่ตรงกลางนั้นใช้ได้อย่างสมบูรณ์และตามความเป็นจริงก็คือ "เปิด" เนื่องจากตรงตามข้อกำหนดข้างต้นอย่างน้อยหนึ่งข้อ
ในการสาธิตให้พิจารณาบล็อกอักขระนี้:
!@#^^$#!@
!@#$$*$&@
@$^!$!@&&
ซึ่งเราสามารถทำเครื่องหมายพิกัดเช่นนั้นเรียกแกนแนวตั้งyและแกนนอนx:
y
3 !@#^^$#!@
2 !@#$$*$&@
1 @$^!$!@&&
123456789 x
พิกัดต้องเสมอจะกลับมาใน(x,y)รูปแบบคล้ายกับสองมิติตารางพิกัด ตอนนี้สวิทช์ใดเปิดอยู่? ก่อนอื่นมาเจอกันก่อน เราเห็นแล้วว่ามี 1 ในแถวบนสุดและอีกอันอยู่ด้านล่างสุด อย่างไรก็ตามตัวเลือกเหล่านี้จะไม่มีตัวเลือกโดยอัตโนมัติเนื่องจากตัวอักษรเหล่านี้ไม่ถูกล้อมด้วยตัวอักษรทั้งหมด 8 ตัว
ถัดไปมาในแถวที่ 2 โดยเฉพาะอันนี้:
#^^
#$$
^!$
เราสามารถเห็นได้ว่ามี 3 $สัญญาณในสิ่งนี้ แต่เราแค่ต้องการมุ่งเน้นไปที่ตรงกลางและอย่างที่คุณอาจเห็นว่ามันไม่ถูกต้องอยู่แล้วเนื่องจากมันมี 2 #s รอบโดยไม่มี&s เพื่อปรับสมดุล ออก. นอกจากนี้สิ่งนี้ไม่ได้ปฏิบัติตามกฎใด ๆ ดังนั้นแม้ว่าจะเป็นสวิตช์ที่ถูกต้องก็ตามก็จะเป็น "ปิด" อย่างไรก็ตาม
ถัดไปมาอีกอันหนึ่งในแถว 2:
^^$
$$*
!$!
อีกครั้งเพียงมุ่งเน้นไปที่สวิตช์ที่อยู่ตรงกลาง สวิตช์นี้เป็น "เปิด" เนื่องจากมีอย่างน้อย 1 !ในอย่างน้อย 1 มุม (5,2)พิกัดของหนึ่งนี้
ในที่สุดเราก็เข้าสู่สวิตช์สุดท้าย อันนี้อยู่ในแถวที่สองและดูเหมือนว่า:
$#!
*$&
!@&
และในขณะที่คุณอาจจะเห็นคนนี้ยังเป็นสวิทช์ที่ถูกต้องแม้ว่าจะมี#รอบเนื่องจากมี 2 อื่น ๆ&เพื่อ outbalance #นอกจากนั้นมันยังมีอย่างน้อย 1 !ในอย่างน้อย 1 ของมุมและดังนั้นไม่เพียง แต่เป็นสวิตช์ที่ถูกต้อง แต่ยังเป็น "เปิด" (7,2)พิกัดของสวิทช์นี้
ในที่สุดเราก็มาถึงจุดสิ้นสุดและพบสวิตช์ 2 "บน" ในบล็อกทั้งหมดในข้อความ พิกัดของพวกเขาคือ(5,2)และ(7,2)ซึ่งเป็นคำตอบสุดท้ายของเราและผลลัพธ์ที่ควรจะเป็น อย่างไรก็ตามข้อมูลนี้ง่ายมาก อินพุตสามารถมีขนาดใหญ่ขึ้นได้มากเนื่องจากไม่มีการ จำกัด จำนวนบล็อกข้อความ ตัวอย่างเช่นการป้อนข้อมูลอาจเป็น200x200บล็อกข้อความแบบสุ่ม
contraints
ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
มีไม่สามารถเป็นไปได้ที่จะมีในตัวนี้ แต่เพียงในกรณีที่มี (มองหาที่คุณมาติกา) ที่ใช้ในการสร้างอินที่โดยตรงแก้ปัญหานี้ไม่ได้รับอนุญาต
กรณีทดสอบ:
ให้ในรูปแบบstring input -> [array output]:
@#$$&^!&!#
@*&!!^$&^@
$!#*$@#@$! -> [[7,3],[9,2]]
*@^#*$@&*#
#^&!$!&$@@#&^^&*&*&&
!^#*#@&^#^*$&!$!*^$$
#^#*#$@$@*&^*#^!^@&* -> [[19,3],[15,3],[8,2]]
#$@$!#@$$^!#!@^@^^*#
@!@!^&*@*@
*$*^$!*&#$
@$^*@!&&&#
**$#@$@@#! -> [[2,8],[5,8],[6,6],[9,3]]
##*&*#!^&^
$&^!#$&^&@
^^!#*#@#$*
$@@&#@^!!&
#@&#!$$^@$
!!@##!$^#!&!@$##$*$#
$^*^^&^!$&^!^^@^&!#!
@*#&@#&*$!&^&*!@*&** -> [[9,4],[9,3]]
^!!#&#&&&#*^#!^!^@!$
&$$^*$^$!#*&$&$#^^&$
กำลังจะมาเร็ว ๆ นี้
หมายเหตุเพิ่มเติม
- คุณสามารถสันนิษฐานได้ว่าอินพุตจะอยู่ในรูปแบบของบล็อกที่สมบูรณ์เสมอ (เช่นสี่เหลี่ยมหรือสี่เหลี่ยม)
- จะมีไม่เคยเป็นตัวละครอื่น ๆ
!@#$^&*ในการป้อนข้อมูลกว่าผู้ที่อยู่ใน
โปรดจำไว้ว่านี่คือรหัสกอล์ฟเพื่อให้ได้รหัสที่สั้นที่สุดชนะ!