พิจารณาการวาดเส้นโค้งสองมิติที่เรียบง่ายและเปิดกว้างบน W กว้างด้วยกริดสูงของข้อความที่X
แสดงถึงส่วนหนึ่งของเส้นโค้งและ.
แสดงพื้นที่ว่างและไม่มีการใช้อักขระอื่น
ทุกพื้นที่กริดมี 8 กริดกริดที่อยู่ใกล้เคียงคือละแวกมัวร์ พื้นที่กริดที่เกินขอบเขตจะถือว่าว่างเปล่า
กริดประกอบด้วยเส้นโค้งถ้ามันมีหนึ่งX
หรือถ้ามันมีมากกว่าหนึ่งX
ที่:
- ตรงสอง
X
sX
มีเพียงหนึ่งที่อยู่ใกล้เคียง นี่คือจุดสิ้นสุดของเส้นโค้ง - ทุกคน
X
นอกเหนือจากปลายทางเพื่อนบ้านตรงสองX
s รูปแบบเหล่านี้เป็นกลุ่มของเส้นโค้ง
ตัวอย่างเช่นกริดนี้ที่ W = 9 และ H = 4 มีเส้นโค้ง:
....X.... .X.X.X.X. X..X..X.X .XX.....X
เช่นกันกริดเหล่านี้ (W = 4, H = 3) มีเส้นโค้ง:
.... .X.. .... .... .X.X .... X..X ..X. XX.. X.X. ..X. .XX. .X.. .... ....
อย่างไรก็ตามกริดเหล่านี้ไม่มีเส้นโค้ง:
.... .XX. ...X XX.. .... X.X. .... X..X ..XX XX.. .X.X .X.. .... .XX. .X.. .... ...X X.X.
เราสามารถหาความยาวของเส้นโค้งโดยรวมระยะทางระหว่างคู่ที่อยู่ใกล้เคียงทั้งหมดของX
s:
ระยะห่างระหว่างสอง orthogonally เพื่อนบ้าน
X
s คือ 1 หน่วยXX
X X
ระยะห่างระหว่างสองข้างที่อยู่ติดกันในแนวทแยงมุม
X
คือ√2หน่วยX. .X
.X X.
ตัวอย่างเช่นความยาวของเส้นโค้งในตาราง
XXX. ...X ..X.
สามารถมองเห็นเป็น
เพื่อให้เราเห็นว่าเป็น 1 + 1 + √2 + √2 = 4.828427 ...
ความยาวของเส้นโค้งที่มีเพียงเส้นเดียวX
คือศูนย์
เมื่อกริดไม่ได้สร้างเส้นโค้งความยาวของมันจะไม่ถูกกำหนดอย่างชัดเจน
ท้าทาย
ให้กริดของข้อความของX
s และ.
s, เอาท์พุทความยาวของเส้นโค้งที่บรรจุไว้, หรือส่งออกบางอย่างเช่น-1
หรือNull
เพื่อระบุว่ากริดไม่มีเส้นโค้ง
สำหรับอินพุตคุณสามารถใช้อักขระอื่นนอกเหนือจากX
และ.
หากต้องการและอาจใช้H และ W เป็นอินพุตหากจำเป็น ป้อนข้อมูลเป็นรายการซ้อนหรือเมทริกซ์ที่เต็มไปด้วย 1s และ 0s แทนที่จะเป็นสตริงก็ดีเช่นกัน
คุณอาจเอาท์พุทลอยสำหรับความยาวเส้นโค้งหรือหรือจำนวนเต็มสองจำนวน A และ B length = A + B*√2
ที่
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
กรณีทดสอบ
XXX.
...X
..X.
2 + 2*√2 = 4.828427...
....X....
.X.X.X.X.
X..X..X.X
.XX.....X
3 + 8*√2 = 14.313708...
....
....
..X.
0 + 0*√2 = 0
.X..
X..X
.XX.
1 + 3*√2 = 5.242640...
....
..X.
.X..
0 + 1*√2 = 1.414213...
....
XX..
....
1 + 0*√2 = 1
.X.X
X.X.
....
0 + 3*√2 = 4.242640...
....
....
....
....
-1
.XX.
X..X
.XX.
-1
...X
..XX
.X..
-1
....
.X.X
...X
-1
X.X.
.X..
X.X.
-1
[x.x,...,.x.]
ไม่ใช่เส้นโค้งที่ถูกต้องใช่ไหม