This repository was 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
Expand file tree
/
Copy path1008.html
More file actions
44 lines (43 loc) · 5.92 KB
/
1008.html
File metadata and controls
44 lines (43 loc) · 5.92 KB
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
<span style="font-family: Courier New;">รัฐบาลวางแผนสร้างเมืองใหม่บนพื้นที่ราบที่มีระดับเสมอกัน โดยกำหนดให้อาคารที่จะสร้างแต่ละหลังมีรูปทรงเป็นสี่เหลี่ยมผืนผ้า หลังจากที่มีการสร้างอาคารแล้วเมื่อมองตัวเมืองจากระยะไกล จะเห็นเส้นขอบฟ้าตามแนวเส้นขอบของอาคาร และทุกครั้งที่มีการสร้างอาคารเพิ่มขึ้น เส้นขอบฟ้าของตัวเมืองจะเปลี่ยนแปลงไป <br />
<br />
อาคารที่จะสร้างขึ้นแต่ละหลัง กำหนดด้วยจำนวนเต็มบวกสามจำนวนคือ ( Li , Hi , Ri ) เมื่อ Li และ Ri เป็นตำแหน่งตามแกนนอนด้านซ้ายและขวาของอาคารลำดับที่ i ตามลำดับ ส่วน Hi เป็นความสูงของอาคารนั้น เช่น (1, 11, 5) หมายถึง อาคารที่สร้างขึ้นโดยมีขอบด้านซ้ายอยู่ที่ตำแหน่งที่ 1 ขอบด้านขวาอยู่ที่ตำแหน่งที่ 5 ของแกนนอน และมีความสูงเป็น 11 หน่วย เมื่อสร้างอาคารนี้เสร็จจะได้เส้นขอบฟ้าใหม่เป็น (1, 11, 5, 0) นั่นคือ ที่ตำแหน่งที่ 1 ขอบฟ้ายกขึ้นสูง 11 หน่วยตามความสูงของอาคารไปจนถึงตำแหน่งที่ 5 แล้วความสูงลดลงเป็น 0<br />
<br />
</span><center><span style="font-family: Courier New;"><img alt="" src="./img/1008/1008-1.gif" /><br />
<br />
</span></center><span style="font-family: Courier New;"> แผนภาพด้านซ้ายมือแสดงตัวเมืองที่มีการสร้างอาคารแล้ว 8 หลัง ซึ่งอาคารแต่ละหลังมีข้อมูลดังนี้คือ (1, 11, 5), (2, 6, 7), (12, 7, 16), (14, 3, 25), (19, 18, 22), (3, 13, 9), (23, 13, 29), และ (24, 4, 28) ทำให้เกิดเส้นขอบฟ้าใหม่ตามแผนภาพด้านขวามือ ซึ่งแทนด้วยลำดับตัวเลขดังนี้คือ (1, 11, 3, 13, 9, 0, 12, 7,16, 3, 19, 18, 22, 3, 23, 13, 29, 0) โดยค่าที่พิมพ์ด้วยตัวหนาคือความสูงของเส้นขอบฟ้า <br />
<br />
จงเขียนโปรแกรมคำนวณหาเส้นขอบฟ้าจากข้อมูลของอาคารที่กำหนดให้ และแสดงผล <b><br />
<br />
</b><u><b>ข้อมูลนำเข้า</b></u><br />
<strong>1.</strong> บรรทัดแรกเป็นจำนวนอาคารที่ต้องการหาเส้นขอบฟ้า มีค่าตั้งแต่ 1 ถึง 3,000 <br />
<strong>2. </strong>บรรทัดต่อไปแต่ละบรรทัดเป็นข้อมูลของอาคารแต่ละหลังในรูปแบบ Li Hi Ri โดยแต่ละตัวมีค่าตั้งแต่ 1 ถึง 255 <br />
<strong>3. </strong>ระหว่างข้อมูลแต่ละตัวในข้อ ๒. คั่นด้วยเว้นวรรค 1 วรรค <b><br />
<br />
</b><u><b>ข้อมูลส่งออก</b></u><br />
<strong>1.</strong> ผลลัพธ์ของโปรแกรมมีเพียงบรรทัดเดียว ได้แก่ เส้นขอบฟ้าที่เกิดจากข้อมูลของอาคารที่เป็นข้อมูลนำเข้า โดยเส้นขอบฟ้ามีรูปแบบดังนี้ v1 v2 v3 … vn-2 vn-1 vn เมื่อ i เป็นจำนวนคี่ vi จะแทนตำแหน่งของเส้นขอบฟ้าตามแกนนอน และ เมื่อ i เป็นจำนวนคู่ v i แทนความสูงของเส้นขอบฟ้าที่ตำแหน่งนั้น ด้วยเหตุนี้ vn จึงมีค่าเป็น 0 เนื่องจากเส้นขอบฟ้าลดลงสู่ระดับพื้น <br />
<strong>2. </strong>ผลลัพธ์แต่ละจำนวนให้คั่นด้วยเว้นวรรค 1 วรรค <b><br />
<br />
<u>ที่มา</u>: การแข่งขันคอมพิวเตอร์โอลิมปิก สอวน. ครั้งที่ 2 มหาวิทยาลัยบูรพา</b></span>
<table>
<tr>
<th>ข้อมูลนำเข้า</th>
<th>ข้อมูลส่งออก</th>
</tr>
<tr>
<td>2
<br />1 11 5
<br />2 6 7</td>
<td>1 11 5 6 7 0</td>
</tr>
<tr>
<td>8
<br />1 11 5
<br />2 6 7
<br />12 7 16
<br />14 3 25
<br />19 18 22
<br />3 13 9
<br />23 13 29
<br />24 4 28</td>
<td>1 11 3 13 9 0 12 7 16 3 19 18 22 3 23 13 29 0</td>
</tr></table>