2012年4月27日 星期五

今晚打老虎


這台機器有三顆功能鍵跟數字小鍵盤



功能鈕上分別寫著


1. Insert


2. Query MAX


3. Query MIN


旁邊寫著一行粗字: 極值經查詢後將會刪除 


題目看到這各位也明瞭了吧


請你寫出這台機器的程式


可以插入數字並且查詢其中的最大值與最小值 


輸入說明 :
每行輸入開頭有三種情形


1: 插入操作,其後會跟著一數字 N 代表插入的數字 (0 ≤ N ≤ 2^31-1)
2: 查詢最大值
3: 查詢最小值
同一時間內最多有 100,0000 個數字


輸出說明 :
每筆查詢輸出一行


每行只有一個數字 




範例輸入 :


1 3
1 100 

1 4 
3


範例輸出 :


100 
3

3 則留言:

  1. Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Do While Not EOF(1)
    Input #1, x
    If x = 1 Then Input #1, n
    a = List1.ListCount
    If x = 1 Then List1.AddItem n - 90000000000#
    If x = 2 Then Print #2, List1.List(0) + 90000000000#: List1.RemoveItem (0)
    If x = 3 Then Print #2, List1.List(a - 1) + 90000000000#: List1.RemoveItem (a - 1)
    Loop
    Close
    Close
    End
    End Sub

    回覆刪除
  2. 作者已經移除這則留言。

    回覆刪除
  3. Private Sub Form_Load()
    Me.Hide
    Open App.Path & "\in.txt" For Input As #1
    Open App.Path & "\out.txt" For Output As #2
    Do While Not EOF(1)
    Line Input #1, r
    b = Split(r)
    If Val(b(0)) = 1 Then
    List1.AddItem Val(b(1)) + 1000000
    End If
    If Val(b(0)) = 2 Then Print #2, List1.List(List1.ListCount - 1) - 1000000: List1.RemoveItem (List1.ListCount - 1)
    If Val(b(0)) = 3 Then Print #2, List1.List(0) - 1000000: List1.RemoveItem (0)
    Loop
    Close #2
    Close #1
    End
    End Sub

    回覆刪除