หลบความตายของคุณ!


13

บทนำ

"Muhuhuhahahah!" นักวิทยาศาสตร์บ้าหัวเราะ "คุณติดอยู่ในเกมเล็ก ๆ ของฉัน!"

ด้านหน้าของคุณเป็นบ่องูที่อันตรายถึงตายในขณะที่ด้านหลังคุณเป็นช่องว่างที่ก้นเหว ไม่มีทางออกคุณติดอยู่!

"สองก้าวต่อหน้าคุณคือหลุมงูและสองขั้นตอนด้านหลังคุณคือช่องว่าง แต่! ก่อนที่คุณจะย้ายคุณต้องเขียนลำดับขั้นตอนไปข้างหน้าและถอยหลังและมอบมันให้ฉัน แต่เพราะฉันวันนี้ฉันรู้สึกชั่วร้ายนิดหน่อยฉันสามารถทำให้คุณทำแทนทุกขั้นตอนทุกnขั้นตอนที่nน้อยกว่าความยาวของลำดับ!

เลือกอย่างชาญฉลาดตอนนี้ "

จำนวนขั้นตอนสูงสุดที่คุณสามารถทำได้ก่อนตายคืออะไร?

งาน

คำนำด้านบนเป็นเกลียวในการคาดคะเนความแตกต่างของแอร์ดิชซึ่งพิสูจน์แล้วว่าเป็นจริงเมื่อไม่นานมานี้ (ถ้าคุณต้องการทำความเข้าใจเพิ่มเติมเกี่ยวกับเรื่องนี้ให้ไปที่วิดีโอนี้โดย James Grime - ฉัน "ขโมย" คำถามบิดจากเขา)

คำตอบของอินโทรคือ11ขั้นตอน แต่ฉันจะไม่ไปพิสูจน์ในเชิงลึกเกินไป คำตอบหากระยะห่างระหว่างคุณกับ "อันตราย" ทั้งสองเป็น3ขั้นตอนเป็น1160ขั้นตอนแม้ว่าจะยังไม่ได้รับการตรวจสอบอย่างถูกต้อง

งานของคุณคือการสร้างโปรแกรมที่สร้างลำดับขั้นตอนที่ยาวที่สุดที่คุณสามารถทำได้เพื่อให้มีขนาดใหญ่ขึ้นxซึ่งxเป็นจำนวนขั้นตอนระหว่างคุณกับ "อันตราย" สองประการ โปรแกรมของคุณจะต้องป้อนข้อมูลxและส่งออกลำดับที่ถูกต้องสำหรับสิ่งxนั้น

สำหรับวัตถุประสงค์ของการท้าทายนี้+แสดงถึงการก้าวไปข้างหน้าและ-แสดงถึงการถอยกลับ

ดังนั้นเอาต์พุตสำหรับอินพุต2คือ:

+--+-++--++

ซึ่งใช้ได้ผลไม่ว่าnนักวิทยาศาสตร์บ้าเลือกอะไร x = 5สำหรับความท้าทายของเรา

หมายเหตุ: ความท้าทายนี้ไม่ใช่ความท้าทายนี้หรือความท้าทายนี้เนื่องจากความท้าทายของฉันมุ่งเน้นที่ผลลัพธ์เมื่อเทียบกับรหัสตัวเอง - ในคำอื่น ๆ มันไม่ใช่ความท้าทายกอล์ฟรหัส เช่นเดียวกับที่ความท้าทายเหล่านี้มีพื้นฐานมาจากx = 3ที่มีขอบเขตที่จัดตั้งขึ้นแล้ว

กฎ:

  • โปรแกรมทั้งหมดของคุณควรสอดคล้องกับคำตอบของคุณ อย่างไรก็ตามหากไม่พอดีโปรดระบุที่เก็บ Github เพิ่มเติมหรือสิ่งที่คล้ายกัน
  • คุณสามารถอัปเดตทั้งคำตอบและโปรแกรมของคุณหากคุณได้รับคะแนนที่ดีขึ้นผ่านการเพิ่มประสิทธิภาพรหัสของคุณ - แต่โดยการทำเช่นนั้นคุณจะต้องอัปเดตทุกอย่างในรายการด้านล่าง
  • ในคำตอบของคุณคุณต้องมี:
    • โปรแกรมของคุณทั้งหมดหรือลิงก์ไปยังที่เก็บ GH โฮสต์โค้ดของคุณ
    • ปริมาณของขั้นตอนในการสร้าง - นี้จะเป็นคะแนนสุดท้ายของคุณ
      • คุณต้องระบุลำดับออนไลน์ใน Pastebin หรือบางอย่างที่คล้ายกัน นี่คือเพื่อให้เราสามารถตรวจสอบคำตอบของคุณ
    • เวลาที่คะแนนสุดท้ายของคุณอัปเดตล่าสุดดังนั้นฉันไม่ต้องตรวจสอบประวัติของคุณ
  • คุณไม่สามารถลำดับฮาร์ดโค้ดล่วงหน้าได้
  • โปรแกรมของคุณจะต้องทำงานให้กับทุกคนx (ซึ่งxเป็นจำนวนขั้นตอนระหว่างคุณกับหลุม & ช่องว่าง) แต่คุณจะต้องให้คะแนนx = 5เท่านั้น

คำตอบที่ได้คะแนนมากที่สุดจะเป็นผู้ชนะ!


เพียงเพื่อตรวจสอบความเข้าใจของฉันคุณต้องการลำดับที่แม้ว่าคุณจะเอากันและกันหรือองค์ประกอบที่สามคุณรอดชีวิตมาได้?
Notts90 รองรับโมนิก้า

1
@ Notts90 ใช่ - มันไม่ได้ใช้งานได้แค่นั้น มันจะต้องใช้งานได้ถ้าคุณทำทุกnขั้นตอนที่nมีหมายเลขใด ๆ ที่ต่ำกว่าขนาดของลำดับของคุณ
clismique

ที่เกี่ยวข้องอย่างใกล้ชิด (ฉันเรียกสิ่งนี้ว่าซ้ำซ้อนในกล่องทรายดังนั้นฉันจึงคาดว่าข้อความของความท้าทายจะพูดคุยอย่างน้อย)

ฉันคิดว่าความท้าทายนี้เป็นไปไม่ได้พูดได้จริง การค้นหาความยาวที่ไม่ตรงกันสูงสุดสำหรับx=5นั้นจะต้องมีการค้นพบครั้งสำคัญที่น่าจะตีพิมพ์ พิจารณาว่าจำนวนสูงสุดของ 1,603 สำหรับx=3ได้รับการพิสูจน์และเผยแพร่ในปี 2014และไม่ทราบค่าใด ๆ เพิ่มเติม .
xnor

0 เป็น N ที่เหมาะสมหรือไม่
tuskiomi

คำตอบ:


6

สนิม, คะแนน = 4997216, เวลา = 2017-07-12 00:18 UTC

สิ่งนี้ปรับปรุงจากผลลัพธ์ที่ดีที่สุดที่ฉันสามารถหาได้ในวรรณกรรมซึ่งคือ 1148805 (Ronan Le Bras, Carla P. Gomes, Bart Selman, ในปัญหาความคลาดเคลื่อนของ Erd , 2014) โดยปัจจัย 4.3

ลำดับเอาต์พุตของความยาว 4997216

ซอร์สโค้ดบน GitHub

วิ่ง

โปรแกรมยอมรับความคลาดเคลื่อนสูงสุดเป็นอาร์กิวเมนต์ (นี่คือx - 1 ในภาษาของการท้าทายเพื่อให้สอดคล้องกับแบบแผนทางคณิตศาสตร์ทั่วไป) มันสร้างเอาต์พุตที่เพิ่มขึ้นในรูปแบบที่บีบอัดเล็กน้อยซึ่งมีลักษณะเช่นนี้สำหรับx = 3:

$ cargo run --release 2
add +--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-+
length 90
delete 12
add --++--+-++-++--+-++--+--+-++--+-
length 110
delete 4
add +-+--+-++-++--+-++--+--+-++-++--+-++-+
length 144
delete 6
add --++-++--+-++--+--++++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-+-
length 214
delete 208
add --+++--+++--+-+--+++--+-+--+++--++---+-+--+-+-++-+--+++--+++--+---++-+--+-++-+++---++--+-++-++--++--+--++--+++--+-+-++-+--+-+--+++---+++-+----+++--+-++--++-+-++--+-+--+-+-++-+--+++--++--+--+--+-++-++---++-++-++-+--+-++
length 224
delete 2
add -+++--+-+--+++---++--+--
length 246
done

โดยที่addหมายถึงการผนวกลำดับของสัญญาณไปยังจุดสิ้นสุดของลำดับปัจจุบันdeleteหมายถึงลบจำนวนสัญญาณบางอย่างจากจุดสิ้นสุดของลำดับปัจจุบันและlengthยืนยันความยาวของลำดับปัจจุบัน ชุดรูปแบบนี้หลีกเลี่ยงการผลิตของผลลัพธ์ระดับกลางหลายกิกะไบต์เนื่องจากมีการค้นหาลำดับที่นานขึ้นและนานขึ้น คุณสามารถดึงผลลัพธ์ที่ดีที่สุดได้ด้วยโปรแกรม Python ต่อไปนี้:

import sys
s = ''
for line in sys.stdin:
    cmd = line.split()
    if cmd[0] == 'delete': s = s[:-int(cmd[1])]
    elif cmd[0] == 'add': s += cmd[1]
    elif cmd[0] == 'length': assert len(s) == int(cmd[1])
print(s)

มันทำงานอย่างไร

ที่นี่มีโค้ดประมาณหนึ่งพันเส้นดังนั้นนี่จะเป็นเพียงภาพรวมคร่าวๆเท่านั้น

เรา จำกัด การค้นหาเฉพาะซีเควนซ์ที่สมบูรณ์ (ที่มีf ( a · b ) = f ( a ) · f ( b )) เนื่องจากนั่นหมายความว่าเราต้องการเพียงแค่เกี่ยวข้องกับตัวเองด้วยการ จำกัด จำนวนผลรวมบางส่วนสำหรับn = 1 และบางส่วน ผลรวมสำหรับn ≥ 2 จะตอบสนองขอบเขตเดียวกันโดยอัตโนมัติ

สำหรับสตริงย่อยf ( i + 1), …, f ( j ) ของลำดับสัญญาณที่กำหนดบางส่วน (ดังนั้นแต่ละองค์ประกอบคือ '+', '-', หรือไม่ทราบ), กำหนดอันตราย+ ( i , j ) ให้เป็นสองเท่า จำนวนของ '+' ลบความยาวj - i (เพื่อความสะดวกเราอนุญาตให้iมีขนาดเล็กเท่ากับ - x + 2 และถือว่าf (- x + 3) = ⋯ = f (0) = '+' สำหรับ จุดประสงค์นี้) กำหนดอันตราย- ( i , j ) ในทำนองเดียวกัน จากนั้นผูกกับผลรวมบางส่วนสำหรับn= 1 เท่ากับเงื่อนไขที่เมื่อใดก็ตามที่ijx (mod 2), อันตราย+ ( i , j ) ≤ x - 2 และอันตราย- ( i , j ) ≤ x - 2

เราสร้างโครงสร้างข้อมูลแบบเพิ่มเติมที่รองรับการค้นหาเวลาคงที่สำหรับสตริงย่อยที่มีอันตรายมากที่สุดพร้อมการอัปเดตเวลาแบบลอการิทึม มันทำงานโดยเชื่อมโยงค่าสี่ค่า:

  • อันตราย ( i , j )
  • สูงสุดฉันkjอันตราย ( i , k ),
  • สูงสุดฉันkเจอันตราย ( K , J ) และ
  • สูงสุดฉันkลิตรเจอันตราย ( K , L )

กับสตริงที่มีความยาว 2 ทุก ๆ สตริงที่มีความยาว 4 อื่น ๆ ทุกสตริงที่สี่ของความยาว 8 และอื่น ๆ ค่าที่เกี่ยวข้องกับสตริงที่ยาวขึ้นสามารถคำนวณได้ในเวลาคงที่จากค่าที่เกี่ยวข้องกับสองส่วน

โครงสร้างนี้เสริมด้วยข้อมูลเสริมช่วยให้เราสามารถทำการเผยแพร่ข้อ จำกัด และการตรวจจับความขัดแย้งในลำดับบางส่วนได้อย่างรวดเร็ว เราใช้มันเพื่อทำการค้นหาที่คล้ายกับCDCLด้วยการเผยแพร่หน่วยระดับการตัดสินใจและการย้อนรอยตามลำดับเหตุการณ์ (แต่ไม่มีการเรียนรู้ประโยคในตอนนี้) สำหรับลำดับที่เต็มของความยาวและอีกต่อไป

ในขั้นตอนการค้นหาแต่ละครั้งเราจะคาดเดาสัญญาณที่ไม่ได้กำหนดที่เก่าที่สุด ฮิวริสติกที่ใช้ในการคาดเดานี้เป็นสิ่งสำคัญมากสำหรับการหลีกเลี่ยงการย้อนรอยจำนวนมาก เราใช้f (3 · k ) = - f ( k ), f (3 · k + 1) = '+', f (3 · k + 2) = '-'

ผล

ความคลาดเคลื่อน 0, 1 และ 2 ค้นหาทันทีค้นหาลำดับที่สมบูรณ์แบบคูณสมบูรณ์ที่ดีที่สุดของความยาว 0, 9 และ 246

การค้นหาความคลาดเคลื่อน 3 ติดอยู่ภายในไม่กี่วินาทีที่ 41319 ซึ่งค่อนข้างไกลจากลำดับความยาวคูณสมบูรณ์แบบที่รู้จักกันดีที่สุดคือ 127645 ที่ค้นพบโดย Le Bras et al., 2014 (และส่วนขยายความยาว 130000พบไม่นานหลังจากนั้นเล็กน้อย) แต่ดีกว่าลำดับที่รู้จักกันดีที่สุดก่อนที่ความยาว 17000

ความแตกต่าง 4 ค้นหาสินค้าที่ช่วยเพิ่มลำดับที่ยาวที่สุดมากขึ้นหรือน้อยลงอย่างต่อเนื่องประมาณห้านาทีจนกว่าจะได้รับการติดอยู่ที่ 4997216. ที่ดีที่สุดลำดับที่รู้จักกันก่อนหน้านี้มีความยาว 1,148,805 = 9 · 127,645 ถูกขยายจากความแตกต่าง 3 ลำดับโดยการเปลี่ยนสัญญาณทุกวินาทีกับ + - - + - ++ - s เท่าที่ฉันจะบอกได้ลำดับนี้นานเกินไปยากสำหรับนักแก้ปัญหา SAT ทั่วไปที่จะปรับปรุงโดยตรงอย่างมีเหตุผล (แต่บางทีคุณผู้อ่านที่รักสามารถพิสูจน์ได้ว่าฉันผิด!)

ฉันคาดหวังว่าฉันจะต้องเพิ่มประโยคการเรียนรู้บางส่วนลงในโปรแกรมของฉันเพื่อผ่านอุปสรรคเหล่านี้

ลำดับเป็น 2187 × 2285 บิตแมป

(คลิกเพื่อดูความละเอียดเต็ม)

ลำดับเป็น 2187 × 2285 บิตแมป


127465 สำหรับลำดับการคูณสมบูรณ์ใช่ไหม
CalculatorFeline

"การเรียนรู้มาตรา"?
CalculatorFeline

ดูการเรียนรู้ข้อที่ขับเคลื่อนด้วยความขัดแย้ง - เป็นวิธีการแก้ปัญหา SAT ที่ทันสมัยทำงานอย่างไร
Anders Kaseorg

fuzz ทั้งหมดใน bitmap คืออะไร?
SS Anne

@SSAnne Places ที่โปรแกรมพบว่าการเบี่ยงเบนจากฮิวริสติกนำไปสู่ลำดับที่ยาวขึ้น
Anders Kaseorg

3

Haskell , score = 9020, time = 2017-06-09 00:52 UTC

f 1=""
f n="+-"++do c<-f(n-1)++"-";"-+-++-"++c:"+-"

ลองออนไลน์!

คะแนนนี้ (9 n - 1 - 1) ⋅11 / 8 สำหรับทุกn นี่คือผลลัพธ์บางส่วนแรก:

n=1, length=0: 
n=2, length=11: +--+-++--+-
n=3, length=110: +--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+-
n=4, length=1001: +--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+-
n=5, length=9020: +--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++-++--+-++-++--+-++--+--+-++--+--+-++-++--+-++--+--+-++--+-
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.