1. 程式人生 > >懶羊羊的作業

懶羊羊的作業

題面描述: 看過國產動畫片的同學都知道,懶羊羊是一隻非常懶的羊,整天除了吃就是睡, 根本沒有時間做作業。明天就是週一了,村長慢羊羊留的作業:把 n 個整數從大 到小排序,它還沒開始寫,真是一件讓羊悲傷的事呀。但是,懶羊羊又是一隻相 當“機智”的羊, 它發現村長年紀大了, 這麼多作業根本判不過來, 只會檢查作業 的開頭和結尾。所以懶羊羊想出了一個辦法:把最大的數和第一個數交換,再把 最小的數與最後一個數交換,其他的數位置不變。按這種方法得到的整數數列就 可以瞞過村長啦。但是即使這樣,懶羊羊也懶得去做,所以它來求助愛程式設計的你 們啦。 輸入資料: 第一行為 T,表示有 T 組資料。接下來 T 行,每行的第一個數為一個整數 n,表 示該行隨後有 n 個整數,為要進行上述操作的 n 個數(保證這 n 個數中最大的數 只有一個,最小的數也只有一個, T<=50; 2<=n<=10000)。 輸出資料:

對每組測試資料輸出單獨的一行結果, 形如“Case #x: ans ”, 表示第 x 組的結果 為 ans。 樣例輸入: 2 5 2 3 1 5 4 6 9 11 2 0 7 2 樣例輸出: Case #1: 5 3 4 2 1 Case #2: 11 9 2 2 7 0

t= int(input())
an = []
c = 1
for i in range(t):
    datain = []
    l = []
    dat = []
    temp = list(input().split())
    for j in range(1,int(temp[0])+1):
        dat.append(int(temp[j]))
    nmax = (max(dat))
    nmin = (min(dat))
    cmax = dat.index(nmax)
    cmin = dat.index(nmin)
    maxtemp = dat[0]
    mintemp = dat[-1]
    dat[0] = nmax
    dat[-1] = nmin
    if(cmin == 0 and cmax != int(temp[0])-1):
        dat[cmax] = mintemp
    elif(cmin != 0 and cmax == int(temp[0])-1):
        dat[cmin] = maxtemp
    else:
        dat[cmax] = maxtemp
        dat[cmin] = mintemp
    an.append(dat)
for i in an:
    print("Case #{}: ".format(c),end = '')
    x = i[0:-1]
    for j in x:
        print(j,'',end = '')
    print(i[-1])
    c = c+1