Challenge ถ่ายจากการแข่งขันเพื่อชิงรหัสมหาวิทยาลัย
นี่คือวันที่ 0 แต่ความท้าทายของเมื่อวานเป็นเรื่องง่ายเกินไปและอาจเป็นคำถามอื่นที่นี่
Tetris เป็นวิดีโอเกมที่ได้รับความนิยมในยุค 80 ประกอบด้วยการวางชิ้นส่วนที่มีรูปร่างแตกต่างกันที่ตกลงบนกระดานเพื่อให้พอดีกับขนาดที่เล็กที่สุดเท่าที่จะเป็นไปได้
ในปัญหานี้เราจะสมมติลำดับของชิ้นส่วนที่ตกอยู่ในตำแหน่งที่แน่นอนและมีทิศทางที่ไม่สามารถเปลี่ยนแปลงได้ ชิ้นส่วนจะซ้อนขึ้นเมื่อพวกเขาตกลงมาและแถวทั้งหมดจะไม่ถูกกำจัด (เช่นในเกมดั้งเดิม) วัตถุประสงค์คือเพื่อกำหนดความสูงสุดท้ายของแต่ละคอลัมน์ของกระดานหลังจากชิ้นส่วนทั้งหมดตกลงมา
มีทั้งหมด 7 ชิ้นแตกต่างกันแสดงในรูป:
ท้าทาย
รับรายการชิ้นส่วนส่งออกความสูงของคอลัมน์ทั้งหมดจากกระดานหลังจากชิ้นส่วนทั้งหมดตกลงมา
ชิ้นส่วนประกอบด้วยตัวเลขสามตัว: I, R และ P หมายเลขแรก, I, คือตัวระบุของชิ้น (หมายเลขระหว่าง 1 ถึง 7 ตามลำดับเช่นเดียวกับในรูป) ตัวเลขที่สองคือ R คือการหมุนของชิ้นส่วน สามารถใช้ค่า 0, 90, 180 หรือ 270 และแสดงมุมการหมุนของชิ้นส่วนในทิศทางทวนเข็มนาฬิกา ตัวเลขที่สาม, P, ระบุตำแหน่งของชิ้นส่วน แสดงให้เห็นถึงคอลัมน์ด้านซ้ายครอบครองโดยชิ้น (นี้อาจเป็น 1 หรือ 0 ดัชนีโปรดระบุ)
ตัวอย่างและกรณีทดสอบ (1 ดัชนี)
- ป.ร. ให้ไว้
[[1, 0, 1], [4, 0, 1], [5, 90, 4]]
- เอาท์พุต
[3, 3, 1, 3, 2]
- ป.ร. ให้ไว้
[[6, 270, 4], [1, 180, 5], [1, 90, 6], [7, 0, 4]]
- เอาท์พุต
[0, 0, 0, 9, 9, 8, 3, 3]
ให้
[[3,0,1],[3,180,3]]
ผลผลิต[1,1,4,4,4]
ให้
[[2,180,1],[2,0,3]]
ผลผลิต[2,2,4,3,3]
หมายเหตุ
- นี่คือรหัสกอล์ฟ
- แถว / คอลัมน์สามารถเป็น 1 หรือ 0 ดัชนี กรุณาระบุ
- คุณสามารถกำหนดค่าอินพุตใหม่ได้ (บางทีคุณอาจต้องการเรียกส่วนที่ 1 เป็น A และอื่น ๆ ) ในกรณีนั้นโปรดระบุ
คำถาม
เราสามารถใช้ค่าที่แตกต่างกัน 4 ค่าใด ๆ แทนมุมเป็นองศาได้หรือไม่: ใช่
เราควรจะจัดการกับ "หลุม" หากชิ้นส่วนไม่พอดีกับชิ้นก่อนหน้าหรือไม่?: ใช่
ความสูงหรือความกว้างของกระดานล้อมรอบหรือไม่? ไม่ทั้งความกว้างและความสูงไม่ถูก จำกัด ขอบเขต
ขอบคุณ @Arnauld สำหรับภาพและกรณีทดสอบ *. *
I
,R
และP
จะมีการป้อนข้อมูลในลำดับที่แตกต่างกันอย่างไร