บทนำ
ในสาขาคณิตศาสตร์ที่รู้จักกันเป็นโครงสร้างมีสิ่งที่เรียกว่าหลักการแยก โดยสังเขปคุณมีชุดX
และชุดย่อยของX
ซึ่งเราสามารถคิดว่าเป็นคุณสมบัติ ระบบจะถูกแยกออกจากกันอย่างดีหากสามารถแยกแยะความแตกต่างระหว่างรายการทั้งหมดของX
คุณสมบัติของพวกเขา สัจพจน์ที่แยกกันทำให้ความคิดนี้เป็นทางการ ในความท้าทายนี้งานของคุณคือการตรวจสอบสัจพจน์สามแยกที่กำหนดX
และรายการของคุณสมบัติ
อินพุต
อินพุตของคุณเป็นจำนวนเต็มn ≥ 2
และรายการT
ของจำนวนเต็ม จำนวนเต็มในถูกดึงมาจากT
X = [0, 1, ..., n-1]
รายการในT
อาจว่างเปล่าและไม่เรียงลำดับ แต่ไม่มีรายการที่ซ้ำกัน
เอาท์พุต
เอาต์พุตของคุณคือหนึ่งในสี่สายกำหนดโดยหลักการแยกสามอันแต่ละอันแข็งแกร่งกว่าอันสุดท้าย มีสัจพจน์อื่น ๆ แต่เรายึดติดกับสิ่งเหล่านี้เพื่อความเรียบง่าย
- สมมติว่าสำหรับทั้งหมดที่แตกต่าง
x
และy
ในX
มีรายการT
ที่มีหนึ่งในนั้น แล้วX
และT
ตอบสนองความจริง T0 - สมมติว่าทุกที่แตกต่างกัน
x
และy
ในการX
มีอยู่สองรายการในT
หนึ่งซึ่งมีx
แต่ไม่ได้y
และอื่น ๆ ที่มีแต่ไม่y
x
แล้วX
และT
ตอบสนองความจริง T1 - สมมติว่าทั้งสองรายการด้านบนไม่มีองค์ประกอบที่เหมือนกัน แล้ว
X
และT
ตอบสนองความจริง T2
การส่งออกของคุณเป็นหนึ่งT2
, T1
, T0
หรือTS
ขึ้นอยู่กับเงื่อนไขดังกล่าวข้างต้นถือ ( TS
หมายถึงไม่มีของพวกเขาทำ) โปรดทราบว่า T2 นั้นแข็งแกร่งกว่า T1 ซึ่งแข็งแกร่งกว่า T0 และคุณควรส่งออกสัจพจน์ที่แข็งแกร่งที่สุดที่เป็นไปได้เสมอ
กฎและการให้คะแนน
คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต
กรณีทดสอบ
2 [] -> TS
2 [[],[1]] -> T0
2 [[0],[1]] -> T2
3 [[0],[0,1,2],[1,2]] -> TS
3 [[],[0],[0,1],[2]] -> T0
3 [[0],[0,1],[2,1],[0,1,2]] -> T0
3 [[0],[0,1],[2,1],[2,0]] -> T1
6 [[0,2,4],[0,3,5],[1,2],[3,4,5]] -> TS
6 [[0,2,4],[0,3,5],[1,2],[2,5],[3,4,5]] -> T0
6 [[0,2,4],[0,3,5],[1,2],[2,5],[3,1],[3,4,5]] -> T1
6 [[0,1],[0,2,3],[1,4],[2,4],[2,3,5],[1,3],[4,5]] -> T2
0 []
T2
n
ฟุ่มเฟือยหรือไม่ ในส่วนที่เหลือของความท้าทายฉันไม่ได้เห็นมันใช้นอกเหนือจากการกำหนดองค์ประกอบที่สามารถอยู่ในT
นั้นดังนั้นมันเป็นเพียงทางลัดที่ให้ไว้สำหรับT.Maximum()
?