บทนำ
คุณเป็นหัวหน้างานของลานจอดรถและผู้จัดการของคุณกำลังเตรียมตัวสำหรับการลดขนาดให้ใหญ่สุด
มันเป็นปัญหาที่ง่ายและปรับเปลี่ยนได้ในระดับสูงสุดของPATเมื่อปีที่แล้ว
ท้าทาย
คุณจะถูกถามในการคำนวณวิธีการหลายคันอยู่ในจำนวนมากในเวลาเดียวกันที่มากที่สุด
ใช้กฎมาตรฐาน และนี่คือรหัสกอล์ฟที่สั้นที่สุดที่จะชนะ
บรรทัดแรกคือปริมาณของรายการ (ไม่เกิน100,000, การป้อนข้อมูลของคุณอาจไม่ประกอบด้วยบรรทัดนี้หากคุณต้องการให้มันเป็นเพียงชั่วคราวเพื่อตรวจสอบการป้อนข้อมูลที่ปลาย ) ข้อความต่อไปนี้มีหนึ่งรายการต่อบรรทัด และแต่ละรายการมีสามตัวเลข:
<Car plate number> <Time (seconds) since open> <0(In) | 1(Out)>
การดัดแปลง 2:มันเป็นเรื่องปกติที่จะใช้อาร์เรย์ของอเนกประสงค์เป็นอินพุต
การดัดแปลง 3:คุณสามารถเปลี่ยนลำดับของตัวเลขในหนึ่งรายการ และคุณสามารถเลือกที่จะใช้ (ดูหัวข้อข้อสังเกต)
อินพุตรับประกันว่าถูกต้องสมมติว่า:
Car plate numberเป็นจำนวนเต็มในช่วง10000~99999Timeเป็นจำนวนเต็มในช่วง0~86400
และ
- คอมเมนต์ไม่จำเป็นต้องเรียงตามลำดับเวลา
- ไม่มีรถก่อนวินาทีแรก
- นอกจากนี้ไม่จำเป็นต้องไม่มีรถหลังจากวินาทีสุดท้าย
- รถจะไม่ออกก่อนที่จะเข้า
Car plate numberมีเอกลักษณ์ (แต่รถคันเดียวกันสามารถเยี่ยมชมมากกว่าหนึ่งครั้ง)- ดังนั้นจึงเป็นไปไม่ได้ที่รถยนต์จะเข้ามาในล็อตเตอรี่เมื่อมันอยู่ในนั้น
timeรถเดียวกันจะไม่ไปในและนอกที่เดียวกัน- รถจะถือว่าเป็นจำนวนมากในเวลาที่เข้า / ออก
ตัวอย่างที่ 1
อินพุต
11
97845 36000 1
75487 16500 1
12345 16 0
75486 3300 0
12345 6500 1
97845 32800 0
12345 16400 0
97846 16501 1
97846 16500 0
75486 8800 1
75487 3300 0
เอาท์พุต
3
คำอธิบาย
ที่16500รถยนต์12345และ75487อยู่ในที่จอดรถ
ตัวอย่างที่ 2
ฉันทำสิ่งนี้เพราะฉันพบรหัสจำนวนมากล้มเหลว
อินพุต (โดยเว้นบรรทัดแรกออก)
12345 16400 0
12345 16500 1
75487 16500 0
75487 16600 1
เอาท์พุต
2
คำอธิบาย
ที่16500รถยนต์12345และ75487อยู่ในที่จอดรถ
หมายเหตุ
ที่จริงแล้วไม่จำเป็นต้องใช้ทั้งสามตัวสำหรับเอาต์พุต อย่างน้อยคุณจะต้องใช้แผ่น + เวลาหรือเวลาเข้า / ออกเท่านั้น แต่อัลกอริทึมนั้นแตกต่างกันเล็กน้อยภายใต้สถานการณ์สองสถานการณ์ดังนั้นการเลือกที่จะอยู่แบบสั้นนั้นไม่เป็นที่รู้จักในบางภาษา และแน่นอนคุณสามารถใช้ตัวเลขทั้งสามนี้ได้ ดังนั้นฉันจึงทิ้งพวกเขาไว้ในการท้าทาย