รับรายการนิพจน์ทางคณิตศาสตร์ที่ทุกคนเก็บไว้เป็นจริงและประกอบด้วยการ คำนวณส่วนที่เหลือของโมดูโลที่มีตัวเลขสองตัวและผลลัพธ์งานของคุณคือให้ผลลัพธ์n
ตัวเลขแรกที่ถือเป็นจริงสำหรับงบทั้งหมดในรายการ
ตัวอย่างเช่น:
[m % 3 = 0, m % 4 = 1, m % 5 = 3]
โดยที่% คือโอเปอเรเตอร์โมดูโล
สำหรับn
= 3 ตัวเลข 3 ตัวแรก (นับจาก 0) ที่ตรงกับลำดับคือ33, 93, 153
ดังนั้นผลลัพธ์ของคุณจะเป็นเช่นนั้น (จัดรูปแบบตามที่คุณต้องการ)
กฎ / IO
- คุณใช้จำนวนบวก
n
และรายการความจริง แน่นอนสิ่งที่คุณต้องการใช้เป็นเพียง RHS ของการดำเนินการโมดูโลและผลลัพธ์ n
และตัวเลขในรายการความจริงจะอยู่ในช่วง1 -> 2 ^ 31-1เสมอและผลลัพธ์ก็เช่นกัน- คุณรับอินพุตในรูปแบบที่สะดวกและเอาท์พุทในรูปแบบที่สะดวก ยกตัวอย่างเช่นการป้อนข้อมูล: และเอาท์พุท:
3 [3 0, 4 1, 5 3]
33 93 153
- รับประกันได้ว่าวิธีการแก้ปัญหาเป็นไปได้ทางคณิตศาสตร์
- แหล่งที่มาของการป้อนข้อมูลได้จากไฟล์พารามิเตอร์ฟังก์ชั่น stdin ฯลฯ ... เช่นกันไปสำหรับการส่งออก
- ไม่มีช่องโหว่
- นี่คือโค้ดกอล์ฟดังนั้นจำนวนไบต์ที่น้อยที่สุดจึงชนะ
Testcases
# Input in the form <n>, <(d r), (d2 r2), ...>
# where <d> = RHS of the modulo expression and <r> the result of the expression. Output in the next line.
5, (3 2), (4 1), (5 3)
53 113 173 233 293
3, (8, 0), (13, 3), (14, 8)
120 848 1576
การใช้งานอ้างอิงในรหัสหลอก
n = (an integer from stdin)
truths = (value pairs from stdin)
counter = 0
while n != 0 {
if matches_criterias(counter, truths) {
print counter
n -= 1
}
counter += 1
}
0
ผลมาถูกต้อง?