คำอธิบายงาน:
เขียนโปรแกรมสั้นที่สุดเท่าที่จะทำได้เพื่อวาดการไล่ระดับสีรัศมีในศิลปะ ASCII ขนาดของกริดเอาต์พุตถูกกำหนดไว้ล่วงหน้า จุดกึ่งกลางและอักขระที่จะใช้สำหรับการไล่ระดับสีนั้นเป็นข้อมูลป้อนเข้าสู่โปรแกรม
การไล่ระดับสีจะเป็นเซลล์ขนาด 70 × 25 อักขระโดยมีข้อกำหนดดังต่อไปนี้
- มุมซ้ายบนของตารางมีพิกัด (0, 0)
- การไล่ระดับสีประกอบด้วยตัวอักษรให้เป็นแมปออกเป็น 35 หน่วยความยาว หน่วยความยาวคือหนึ่งอักขระสูงและกว้างสองอักขระ (เนื่องจาก
monospaced fonts
มักจะมีอักขระสูงเป็นสองเท่าตามที่กว้าง) - ภายใน 35 LU เหล่านั้นระยะทางปัจจุบันจากจุดกึ่งกลางจะถูกคูณด้วยจำนวนตัวไล่ระดับสี / 35เพื่อให้ดัชนีของตัวละครวาดที่จุดนั้น ตัวเลขเศษส่วนสำหรับดัชนีจะถูกปัดเศษเป็นศูนย์ที่นี่ หน่วยความยาวจะถูกทิ้งให้เป็นจำนวนจริง (แน่นอนถ้าผลลัพธ์เหมือนกันการใช้งานไม่สำคัญ)
- นอกเหนือจาก 35 LU เหล่านั้นจะมีเพียงตัวไล่ระดับสีตัวสุดท้ายที่ปรากฏขึ้น อย่างไรก็ตามเนื่องจากแถบ«ไล่ระดับสีล่าสุด»เริ่มขึ้นแล้วภายใน 35 LU อักขระตัวสุดท้ายจึงเริ่มปรากฏขึ้นเมื่อไม่ถึง 35 LU แล้ว
การป้อนข้อมูล:
อินพุตถูกกำหนดให้กับอินพุตมาตรฐานและประกอบด้วยสามบรรทัดแต่ละบรรทัดถูกยกเลิกโดยตัวแบ่งบรรทัด:
- xพิกัดของจุดศูนย์การไล่ระดับสี
- Yพิกัดของจุดศูนย์การไล่ระดับสี
- อักขระที่ใช้สำหรับการวาดการไล่ระดับสี สิ่งเหล่านั้นอาจรวมถึงช่องว่าง
เอาท์พุท:
เอาท์พุทเป็นไล่ระดับสีตามที่กำหนดโดยกฎข้างต้นในเอาต์พุตมาตรฐาน กระแสข้อผิดพลาดมาตรฐานจะถูกละเว้น แต่ละเส้นของการไล่ระดับสีถูกยกเลิกโดยการขึ้นบรรทัดใหม่ ไม่มีตัวละครอื่นนอกจากที่กำหนดโดยอินพุตอาจเกิดขึ้น
ตัวอย่างอินพุต 1:
58
14
.:;+=xX$&
ตัวอย่างผลลัพธ์ 1:
&&$$$$$$$$XXXXXXXXxxxxxxxxx===========++++++++++++++++++++++++++++++++
&$$$$$$$$XXXXXXXXxxxxxxxxx=========+++++++++++++;;;;;;;;;;;;;;;;;;;;;+
$$$$$$$$XXXXXXXXxxxxxxxx=========+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;
$$$$$$$XXXXXXXXxxxxxxxx========++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$$$$$$XXXXXXXXxxxxxxxx========+++++++++;;;;;;;;;;;;;:::::::::::::;;;;;
$$$$$XXXXXXXXxxxxxxxx=======+++++++++;;;;;;;;;;;:::::::::::::::::::::;
$$$$$XXXXXXXxxxxxxxx=======+++++++++;;;;;;;;;:::::::::::::::::::::::::
$$$$XXXXXXXXxxxxxxx=======++++++++;;;;;;;;;:::::::::::::::::::::::::::
$$$$XXXXXXXxxxxxxx========+++++++;;;;;;;;::::::::::...............::::
$$$XXXXXXXXxxxxxxx=======+++++++;;;;;;;;:::::::::...................::
$$$XXXXXXXxxxxxxx=======++++++++;;;;;;;::::::::.......................
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;::::::::......... ........
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::........ ......
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::....... .....
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::....... .....
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::....... .....
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::........ ......
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;::::::::......... ........
$$$XXXXXXXxxxxxxx=======++++++++;;;;;;;::::::::.......................
$$$XXXXXXXXxxxxxxx=======+++++++;;;;;;;;:::::::::...................::
$$$$XXXXXXXxxxxxxx========+++++++;;;;;;;;::::::::::...............::::
$$$$XXXXXXXXxxxxxxx=======++++++++;;;;;;;;;:::::::::::::::::::::::::::
$$$$$XXXXXXXxxxxxxxx=======+++++++++;;;;;;;;;:::::::::::::::::::::::::
$$$$$XXXXXXXXxxxxxxxx=======+++++++++;;;;;;;;;;;:::::::::::::::::::::;
$$$$$$XXXXXXXXxxxxxxxx========+++++++++;;;;;;;;;;;;;:::::::::::::;;;;;
ตัวอย่างอินพุต 2:
0
0
X.X.X.X
ตัวอย่างผลลัพธ์ 2:
XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXXXX............XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXX.............XXXXXXXXXX...........XXXXXXXXXX..........XXXXXXXXXX
..................XXXXXXXXXXX..........XXXXXXXXXX...........XXXXXXXXXX
................XXXXXXXXXXXX...........XXXXXXXXXX..........XXXXXXXXXXX
...............XXXXXXXXXXXX...........XXXXXXXXXX...........XXXXXXXXXXX
............XXXXXXXXXXXXXX...........XXXXXXXXXXX..........XXXXXXXXXXXX
.........XXXXXXXXXXXXXXX............XXXXXXXXXXX...........XXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXX............XXXXXXXXXXX...........XXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX.............XXXXXXXXXXX...........XXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX..............XXXXXXXXXXXX...........XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX................XXXXXXXXXXXX............XXXXXXXXXXXXXXX
XXXXXXXXXXX..................XXXXXXXXXXXXX............XXXXXXXXXXXXXXXX
...........................XXXXXXXXXXXXX............XXXXXXXXXXXXXXXXXX
........................XXXXXXXXXXXXXXX............XXXXXXXXXXXXXXXXXXX
......................XXXXXXXXXXXXXXX.............XXXXXXXXXXXXXXXXXXXX
..................XXXXXXXXXXXXXXXXX.............XXXXXXXXXXXXXXXXXXXXXX
.............XXXXXXXXXXXXXXXXXXXX..............XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...............XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX...............XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX.................XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX...................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXX......................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ตัวอย่างอินพุต 3:
70
25
.:+#
ตัวอย่างผลลัพธ์ 3:
######################################################++++++++++++++++
#################################################+++++++++++++++++++++
#############################################+++++++++++++++++++++++++
##########################################++++++++++++++++++++++++++++
#######################################+++++++++++++++++++++++++++++++
####################################++++++++++++++++++++++++++++++++++
##################################++++++++++++++++++++++++++++++++++++
################################++++++++++++++++++++++++++++++++++++++
##############################++++++++++++++++++++++++++++++++::::::::
#############################+++++++++++++++++++++++++++::::::::::::::
###########################+++++++++++++++++++++++++::::::::::::::::::
##########################++++++++++++++++++++++++::::::::::::::::::::
#########################++++++++++++++++++++++:::::::::::::::::::::::
########################+++++++++++++++++++++:::::::::::::::::::::::::
#######################++++++++++++++++++++:::::::::::::::::::::::::::
######################++++++++++++++++++++::::::::::::::::::::::::::::
#####################+++++++++++++++++++::::::::::::::::::::::::::::::
####################+++++++++++++++++++::::::::::::::::::::::::.......
####################++++++++++++++++++::::::::::::::::::::::..........
###################+++++++++++++++++++::::::::::::::::::::............
###################++++++++++++++++++:::::::::::::::::::..............
###################+++++++++++++++++:::::::::::::::::::...............
##################++++++++++++++++++::::::::::::::::::................
##################++++++++++++++++++:::::::::::::::::.................
##################++++++++++++++++++:::::::::::::::::.................
ตัวอย่างอินพุต 4
59
1
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789<>|,.-#+!$%&/()=?*'_:;
ตัวอย่างผลลัพธ์ 4
!+#-,|><87654210ZYWVUTRQPONLKJIHFEDCBzyxwutsrqonmlkjhgfedcbbbcdefghjkl
!+#-,|><87654210ZYWVUTRQPONLKJIHFEDCAzyxwutsrqonmljihgfdcba abcdfghijl
!+#-,|><87654210ZYWVUTRQPONLKJIHFEDCBzyxwutsrqonmlkjhgfedcbbbcdefghjkl
!+#-,|><97654310ZYXVUTSQPONMKJIHGEDCBAyxwvutrqponmkjihgffeedeeffghijkm
$+#-.|><98654320ZYXWUTSRQONMLKIHGFEDBAzyxwutsrqponmlkjihhggggghhijklmn
$!#-.,|<987643210YXWVUSRQPONLKJIHGEDCBAzywvutsrqponmllkjjjiiijjjkllmno
$!+#.,|><87654210ZYXVUTSRQONMLKJHGFEDCBAzywvutsrrqponnmmlllllllmmnnopq
%!+#-.|><987543210YXWVUTRQPONMLJIHGFEDCBAzyxwvutsrrqppooonnnnnoooppqrr
%$!+-.,|><87654310ZYXWVTSRQPONMLJIHGFEDCBAzyxxwvuttssrrqqqqqqqqqrrsstt
&%!+#-.,><987643210ZYXVUTSRQPONMLKJIHGFEDCBAzyyxwvvuutttssssssstttuuvv
&%$!+#.,|><986543210ZYWVUTSRQPONMLKJIHGFEDDCBAzzyyxwwwvvvuuuuuvvvwwwxy
/&%$!#-.,|><976543210ZYXVUTSRQPONMLKKJIHGFEEDCBBAAzzyyyxxxxxxxxxyyyzzA
(/&%!+#-.,|><876543210ZYXWVUTSRQPONMLKJJIHGGFEEDCCBBBAAAzzzzzzzAAABBBC
)(/%$!+#-.,|><876543210ZYXWVUTSRQPPONMLKKJIIHGGFFEEDDDCCCCCCCCCCCDDDEE
=)(&%$!+#-.,|><986543210ZYYXWVUTSRQPPONMMLKKJIIHHGGGFFFEEEEEEEEEFFFGGG
?=)(&%$!+#-.,|><9876543210ZYXWVVUTSRRQPOONMMLLKJJJIIIHHHHHHHHHHHHHIIIJ
*?=)(/%$!+#-.,|><98765432210ZYXWWVUTSSRQQPOONNMMLLLKKKJJJJJJJJJJJKKKLL
'*?=)(/&%$!+#-.,|><98765432110ZYXXWVUUTSSRRQPPOOONNNMMMMMLLLLLMMMMMNNN
_'*?=)(/&%$!+#-.,|><988765432210ZYYXWWVUUTTSSRRQQQPPPOOOOOOOOOOOOOPPPQ
:_'*?=)(/&%$!+##-.,|><9877654332100ZYYXXWVVUUTTTSSSRRRRQQQQQQQQQRRRRSS
;;:_'*?=)(/&%$!+#-.,,|><98876554322100ZZYYXXWWVVVUUUTTTTTTTTTTTTTTTUUU
;;;:_'*?=)(/&&%$!+#-.,,|><9987665443321100ZZYYYXXXWWWWVVVVVVVVVVVWWWWX
;;;;;:_'*?=)(/&%$$!+#-..,|>><9887665544322211000ZZZYYYYYYYYYYYYYYYYYZZ
;;;;;;:_'*??=)(/&%%$!+##-.,,|><<99877665544333222111100000000000001111
;;;;;;;;:_'*?==)(/&&%$!++#--.,,|>><<9887766655544433333322222223333334
หนึ่งสัปดาห์ผ่านไป ถึงเวลาที่จะเปิดเผยความยาวของการแก้ปัญหาจากการแข่งขันในมหาวิทยาลัยของเรา:
167 - Python
189 - Haskell
203 - C
210 - VB.NET
219 - C
และโซลูชั่นของเราเอง:
91 - GolfScript
125 - Ruby
157 - PowerShell