บทนำ
วิธีการกลางสแควร์จะใช้สำหรับการสร้างตัวเลขหลอกเทียม อย่างไรก็ตามนี่ไม่ใช่วิธีการที่ดีในการปฏิบัติเนื่องจากช่วงเวลานั้นมักจะสั้นมากและมีจุดอ่อนที่รุนแรง มันทำงานอย่างไร ลองมาตัวอย่าง:
สำหรับเมล็ดเราเลือก123456
:
Seed 123456
เมล็ดกำลังสอง (เมล็ด×เมล็ด) เท่ากับ:
Seed² 15241383936
เราเริ่มต้นด้วย6 หลักจำนวน นั่นหมายความว่าเมล็ดยืดควรส่ง12 บาทจำนวน หากไม่ใช่กรณีนี้จะมีการเพิ่มศูนย์นำหน้าเพื่อชดเชย:
Seed² 015241383936
จากนั้นเราจะนำส่วนตรงกลางของจำนวนที่มีขนาดเท่ากับเมล็ด:
Seed² 015241383936
^^^^^^
นี่คือเมล็ดพันธุ์ใหม่ของเรา: 241383
. เราทำซ้ำกระบวนการเดียวกันตามที่แสดงด้านบน เราได้รับดังต่อไปนี้:
0: 123456
015241383936
| |
1: 241383
058265752689
| |
2: 265752
070624125504
| |
3: 624125
389532015625
| |
4: 532015
283039960225
| |
5: 039960
001596801600
| |
6: 596801
และสิ่งนี้ยังคงดำเนินต่อไปในขณะนี้ ... ตอนนี้เรารู้แล้วว่าวิธีกำลังสองคืออะไร
งาน
เมล็ดพันธุ์ทุกมีระยะเวลา ระยะเวลาของการให้nเมล็ด -digit ไม่สามารถจะยาวกว่า 8 n 82
ยกตัวอย่างเช่นเมล็ด สิ่งนี้จะให้ลำดับต่อไปนี้:
82 > 72 > 18 > 32 > 02 > 00 > 00 > 00 > 00 > 00
|____|____|____|____|____|____|____|____|____|___...
0 1 2 3 4 5 6 7 8 9
คุณจะเห็นว่าช่วงเวลานั้นเท่ากับ5ก่อนที่จะใส่ตัวเลขเดิมอีกครั้ง งานของคุณคือเมื่อได้รับเมล็ดพันธุ์มากขึ้นกว่าที่มีเลข 0 นำไม่มีการส่งออกระยะเวลาของเมล็ด 5
ดังนั้นในกรณีนี้คุณจะต้องเอาท์พุท
อีกตัวอย่างคือ: 24
ซึ่งให้สิ่งต่อไปนี้:
24 > 57 > 24
|____|____|___...
0 1 2
อย่างที่คุณเห็นว่าลำดับทั้งหมดไม่ได้ลงท้าย0
ด้วย รอบนี้มีระยะเวลาของ1
กรณีทดสอบ
Input > Output
24 > 1
82 > 5
123456 > 146
8989 > 68
789987 > 226
Pastebins พร้อมลำดับสำหรับ123456 , 8989 , 789987
นี่คือโค้ดกอล์ฟดังนั้นการส่งที่มีจำนวนไบต์น้อยที่สุดจะชนะ!
คุณสามารถสันนิษฐานได้ว่าการป้อนข้อมูลจะไม่มีตัวเลขที่ไม่สม่ำเสมอ
24
คือระยะ (กับช่วงที่ 2, ฉันจะบอกว่า)82
เป็นระยะ (ในระยะที่ 1)