เขียนโปรแกรมหรือฟังก์ชั่นที่พิมพ์สตริงอินพุตรอบ ๆ วงวงกลมที่มีรัศมีน้อยที่สุด ตัวอย่างเช่นสำหรับอินพุตThis is an example
โปรแกรมของคุณควรมีเอาต์พุต:
a si
n s
i
e h
x T
a
m
p
le
การสร้างวงกลม
คุณจะต้องใช้อัลกอริทึมวงกลมจุดกึ่งกลางในการคำนวณพิกัดของแต่ละจุดของวงกลมที่ไม่ต่อเนื่อง คุณสามารถหาตัวอย่างเกี่ยวกับวิธีใช้ขั้นตอนวิธีนี้ในหน้านี้วิกิพีเดีย
นี่คือรหัสหลอกของอัลกอริทึม (ตามตัวอย่าง C ของ Wikipedia):
integer x = radius
integer y = 0
int decisionCriterion = 1 - x
while y <= x
point at coordinates (x,y) belongs to the circle // Octant 1
point at coordinates (y,x) belongs to the circle // Octant 2
point at coordinates (-x,y) belongs to the circle // Octant 4
point at coordinates (-y,x) belongs to the circle // Octant 3
point at coordinates (-x,-y) belongs to the circle // Octant 5
point at coordinates (-y,-x) belongs to the circle // Octant 6
point at coordinates (x,-y) belongs to the circle // Octant 7
point at coordinates (y,-x) belongs to the circle // Octant 8
y++
if decisionCriterion <= 0
decisionCriterion += 2 * y + 1
else
x--
decisionCriterion += 2 * (y - x) + 1
end while
คุณอาจจะใช้ขั้นตอนวิธีการที่แตกต่างกันและถ้าหากมันผลิตวงการเดียวกันแน่นอนว่าอัลกอริทึมวงกลมจุดกึ่งกลางผลิตสำหรับรัศมีทั้งหมด
วงกลมจะต้องมีรัศมีที่เล็กที่สุดเท่าที่จะเป็นไปได้ซึ่งยังคงอนุญาตให้เขียนตัวอักษรทั้งหมดของอินพุต
ถ้าวงกลมจบลงด้วยคะแนนมากกว่าจำนวนตัวอักษรในสตริงแล้วตัวละครที่กรอกผ่านมาจะเป็นช่องว่าง
(Radius,0)
ตัวอักษรตัวแรกของท่านจะต้องพิมพ์ในประเด็นที่มีพิกัด อักขระที่ตามมาจะถูกพิมพ์แบบทวนเข็มนาฬิกา
ปัจจัยการผลิต
อินพุตเป็นสตริงของอักขระ ASCII ใด ๆ ระหว่างช่องว่าง(32) และเครื่องหมายตัวหนอน
~
(126)
คุณอาจสันนิษฐานว่าอินพุตจะใช้ได้ตลอดเวลาสั้นกว่า 256 อักขระและยาวอย่างน้อย 5 อักขระ
อินพุตอาจถูกนำมาจาก STDIN หรือเป็นพารามิเตอร์ฟังก์ชันหรือสิ่งอื่นที่คล้ายคลึงกัน
เอาท์พุท
คุณสามารถแสดงผลลัพธ์เป็น STDOUT หรือส่งกลับเป็นสตริงจากฟังก์ชัน
คุณอาจมีช่องว่างต่อท้ายโดยไม่ทำให้บรรทัดยาวเกินกว่าเส้นที่ยาวที่สุด (เส้นตรงกลาง) (เช่นกลางบรรทัดไม่สามารถมีช่องว่างต่อท้ายได้)
อนุญาตให้ขึ้นบรรทัดใหม่ต่อท้าย
กรณีทดสอบ
Input: Hello, World!
Output:
,ol
l
W e
o H
r
l
d!
Input: 4 8 15 16 23 42
Output:
51
8
1
6 4
2 2
3 4
Input: Programming Puzzles & Code golf
Output:
gnim
uP ma
z r
z g
l o
e r
s P
&
C
od f
e Gol
Input: Ash nazg durbatuluk, ash nazg gimbatul, ash nazg thrakatuluk agh burzum-ishi krimpatul.
Output:
zan hsa ,
g ku
ig lu
bm ta
a b
t r
u u
l d
,
g
a z
s a
h n
n h
a s
z A
g
t
h
r
a .
k l
a u
t t
u a
l p
u m
k ri
ag k
h hi
burzum-is
เกณฑ์การให้คะแนน
นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
void
5 ไบต์และประกาศบางส่วนของจำนวนเต็มในขอบเขตทั่วโลกสำหรับไบต์บางมากขึ้นเนื่องจากตัวแปรในขอบเขตทั่วโลกโดยไม่ต้องพิมพ์มีการสันนิษฐานและจะเริ่มต้นโดยอัตโนมัติint
0