This repository has been archived by the owner on Apr 22, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
1004.html
56 lines (55 loc) · 5.93 KB
/
1004.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<span style="font-family: Courier New;">โรงเรียนประจำแห่งหนึ่ง นักเรียนจะต้องเข้าแถวเพื่อรับถาดอาหารกลางวันตั้งแต่เวลา 12:00 น. ของทุกวัน คุณครูจะให้นักเรียนทุกชั้นเข้าแถวเดียวกัน โดยมีระเบียบในการเข้าแถวอยู่ดังนี้ <br />
<br />
<strong>เมื่อเริ่มต้น</strong> นักเรียนคนใดมาก่อน คุณครูจะให้ยืนที่หัวแถว และนักเรียนคนที่จะมาเข้าแถวคนต่อไป คุณครูจะสำรวจตำแหน่งของนักเรียน โดยเริ่มต้นจากหัวแถว และจะแทรกนักเรียนคนนั้นเข้าไปในตำแหน่งต่อจากคนสุดท้ายของนักเรียนในชั้นเรียนเดียวกัน แต่ถ้าไม่มีนักเรียนในชั้นเดียวกันอยู่ในแถว คุณครูจะให้นักเรียนคนนั้นไปต่อที่ท้ายแถว <br />
<br />
<strong>การออกจากแถวเพื่อไปรับถาดอาหาร </strong>นักเรียนที่อยู่หัวแถวที่ได้ออกจากแถวก่อน และให้แสดงเลขประจำตัว นักเรียนที่ได้รับถาดอาหารแล้วไม่สามารถกลับเข้ามาในแถวได้อีก <br />
<br />
ทั้งนี้คุณครูจะทราบเลขประจำตัวและชั้นเรียนของนักเรียนทุกคนอยู่แล้ว และนักเรียนทุกคนจะมีเลขประจำตัวไม่ซ้ำกัน นักเรียนบางคนอาจไม่ได้ถูกเรียกมาเข้าแถว และ นักเรียนบางคนอาจจะไม่ได้ออกจากแถว <br />
<br />
จงเขียนโปรแกรมเพื่อจัดแถวเข้ารับถาดอาหารตามระเบียบของโรงเรียนแห่งนี้ แสดงลำดับการรับถาดอาหารของนักเรียน กรณีที่ไม่มีนักเรียนในแถวให้เขียนข้อความว่า “empty” และ ให้แสดงเลขประจำตัว นักเรียนที่ได้ออกจากแถว <b><br />
<br />
</b><u><b>ข้อมูลนำเข้า</b></u><br />
<strong>บรรทัดแรก</strong> มีจำนวนเต็มสองตัว Nc และ Ns แทนจำนวนชั้นเรียนและจำนวนนักเรียนตามลำดับ โดยที่ 1 <= Nc <= 10 และ 1 <= Ns <= 1000 ตัวเลขทั้งสองถูกคั่นด้วยช่องว่างหนึ่งช่อง <br />
<strong>จากนั้นอีก Ns บรรทัด </strong>เก็บรายละเอียดของนักเรียนแต่ละคนด้วยจำนวนเต็มสองค่าคั่นด้วยช่องว่างหนึ่งช่อง คือ c และ s ซึ่งแทน หมายเลขชั้นเรียนและเลขประจำตัวของนักเรียนตามลำดับ โดยที่ 1 <= c <= Nc และ 1 <= s <= 10000 <br />
<br />
การมาเข้าแถวและการนำนักเรียนออกจากหัวแถวเพื่อไปรับถาดอาหาร แต่ละบรรทัดจะมีรูปแบบคำสั่ง ดังต่อไปนี้ <br />
<em><strong>E id</strong></em>เป็นการนำนักเรียนที่มีเลขประจำตัว id มาเข้าแถว <br />
<em><strong>D</strong></em>เป็นการนำนักเรียนที่อยู่ที่หัวแถวออกจากแถว <br />
<em><strong>X</strong></em>เป็นการระบุว่าเป็นคำสั่งสุดท้าย <b><br />
<br />
</b><u><b>ข้อมูลส่งออก</b></u> <br />
แต่ละบรรทัดแสดงเลขประจำตัวนักเรียนที่ถูกนำออกจากแถวเพื่อรับถาดอาหารตามลำดับ โดยบรรทัดสุดท้ายให้ใส่จำนวนเต็มศูนย์ <b><br />
<br />
<u>ที่มา</u>: การแข่งขันคอมพิวเตอร์โอลิมปิก สอวน. ครั้งที่ 1 มหาวิทยาลัยเกษตรศาสตร์</b></span>
<table>
<tr>
<th>ข้อมูลนำเข้า</th>
<th>ข้อมูลส่งออก</th>
</tr>
<tr>
<td>2 6
<br />1 41
<br />1 42
<br />1 43
<br />2 201
<br />2 202
<br />2 203
<br />E 41
<br />E 201
<br />D
<br />E 202
<br />E 42
<br />E 43
<br />D
<br />E 203
<br />D
<br />D
<br />D
<br />X</td>
<td>41
<br />201
<br />202
<br />203
<br />42
<br />0</td>
</tr></table>