2012年8月15日 星期三

SOS

內容 :
由於阿許吹的哨聲根本沒人聽懂,

所以到現在他還是迷失在深山中。

此時,

同樣在深山迷路的小綠跟阿波出現了! 

小綠說:阿許!原來是你在吹哨!我還想說是什麼奇怪的聲音呢!

阿波說:哈哈你連哨子都不會吹,求救的哨音應該是幾個短音幾個長音吧 ... 順序我也忘了耶! 

這時三個人拿著哨子不知如何是好,請你幫幫忙吧!

給你 n 個短音 m 個長音,輸出這個哨音的所有吹法。 

輸入說明 :
每組測試資料包含兩個整數 n, m 。( 0 ≤ n, m ≤ 10 )

輸出說明 :
請輸出 n 個短音 m 個長音的所有排法,

每組輸出之間保留一空行。 

範例輸入 :

2 1
3 2 
範例輸出 :

SSL
SLS
LSS

SSSLL
SSLSL
SSLLS
SLSSL
SLSLS
SLLSS
LSSSL
LSSLS
LSLSS
LLSSS

1 則留言:

  1. Dim a(20), n, m
    Dim b As Boolean
    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, n, m
    For i = 1 To (n + m)
    If i <= n Then
    a(i) = "S" & i
    Else
    a(i) = "L" & i
    End If
    Next
    Call abc("")
    For i = 0 To List1.ListCount
    Print #2, List1.List(i)
    Next
    List1.Clear
    Loop
    Close
    Close
    End
    End Sub
    Sub abc(t)
    If Len(t) = (n + m) * 2 Then
    b = True
    For i = 1 To n + m
    t = Replace(t, i, "")
    Next
    For i = 0 To List1.ListCount
    If List1.List(i) = t Then b = False: Exit For
    Next
    If b = True Then List1.AddItem t
    Else
    For i = 1 To (n + m)
    If InStr(t, a(i)) = 0 Then Call abc(t & a(i))
    Next
    End If
    End Sub

    回覆刪除