ประตูโรงรถไฟฟ้าของฉันทำงานดังนี้:
- มีปุ่มกดเพียงปุ่มเดียวเพื่อควบคุมประตู
- หากประตูปิดสนิทและฉันกดปุ่มประตูก็จะเปิดขึ้น ใช้เวลาเปิด 10 วินาที
- หากประตูเปิดเต็มและฉันกดปุ่มประตูก็จะปิดลง ใช้เวลาปิด 10 วินาที
- หากประตูเป็นส่วนหนึ่งผ่านการเปิดหรือปิดและฉันกดปุ่มประตูจะหยุดและเปิดทิ้งไว้บางส่วน
- เมื่อใดก็ตามที่ประตูหยุดเคลื่อนที่ไม่ว่าจะเป็นการเปิดหรือปิดโดยอัตโนมัติหรือจากการขัดจังหวะด้วยตนเองโดยการกดปุ่มครึ่งหนึ่งผ่านการกระทำกลไกจะย้อนกลับและจดจำทิศทางของการกระทำต่อไป
- หากกดปุ่มเมื่อประตูหยุดลง แต่เปิดบางส่วนจำนวนเวลาที่ใช้ในการดำเนินการให้เสร็จสมบูรณ์จะเป็นเพียงเสี้ยววินาทีในสัดส่วน 10 วินาทีตามสัดส่วนที่ต้องการเพื่อดำเนินการให้เสร็จสิ้น
สมมติว่าประตูปิดสนิทเมื่อเริ่มต้น
รายการอินพุตของจำนวนเต็มจะได้รับ จำนวนเต็มเหล่านี้คือจำนวนวินาทีที่ฉันรอระหว่างการกดปุ่มควบคุมอย่างต่อเนื่อง
เอาท์พุทสองสิ่ง:
- เปอร์เซ็นต์ที่ระบุสถานะของประตูเมื่อกดปุ่มทั้งหมดเสร็จสิ้นและประตูถึงสถานะคงที่ เอาท์พุทของ
%สัญลักษณ์เป็นตัวเลือก - สิ่งบ่งชี้ที่ชัดเจนว่าประตูจะไปทางไหนเมื่อกดปุ่มถัดไป นี่อาจเป็น
up/down,U/D,+/-,1/0หรืออะไรก็ได้ที่คุณเลือก
คุณอาจถือว่าประตูใช้เวลาน้อยกว่า 10 วินาทีในการเปิดหรือปิดการกระทำ
อินพุตตัวอย่าง:
<empty list> # button was pushed just once
20 # button was pushed twice with 20 seconds between
10
5
20 20
10 10
5 5
1 2 3
8 9 10 11
11 10 9 8 7
ผลลัพธ์ที่คาดหวังที่สอดคล้องกับอินพุตด้านบน
100% D
0% U
0% U
50% D
100% D
100% D
0% U
100% D
0% U
20% U
ตัวอย่างการทำงานของการทดสอบครั้งสุดท้าย
- ประตูเริ่มปิด กดปุ่มแล้ว
- รอ 11 วินาที ประตูเปิดออกจนสุด กดปุ่มแล้ว
- รอ 10 วินาที ประตูปิดท้ายสุด กดปุ่มแล้ว
- รอ 9 วินาที กดปุ่มแล้ว ประตูหยุดที่เปิด 90%
- รอ 8 วินาที กดปุ่มแล้ว ประตูเริ่มปิด
- รอ 7 วินาที กดปุ่มแล้ว ประตูหยุดที่เปิด 20% ทิศทางต่อไปจะขึ้น