2016年1月15日 星期五

d562: 山寨版磁力蜈蚣

內容 :
遊戲洛克人有一個BOSS叫做磁力蜈蚣。
現在山寨版磁力蜈蚣出現了,顯然設計得比本尊弱得很多:
它身上所有的節是由一個個附有數字的磁鐵所組成,
並且會暫時分解自己身上所有的節散落來攻擊玩家。
但是有一天它發現它身上的節居然隨著絕招的使用越來越少!
每次山寨版磁力蜈蚣將自己分解時,會讓所有磁鐵的排列順序倒轉。
例如原本是:1 2 3 4 5,那麼倒轉後便成了5 4 3 2 1
但是現在每次分解前便會先遺失第一節磁鐵,
也就是原本:1 2 3 4 5,會遺失1,
剩下的磁鐵倒轉後是5 4 3 2
下次分解會遺失5,剩下的倒轉成了2 3 4
,再遺失2,成了4 3,最後剩下3便無法分解。
請利用程式來模擬這個過程。
輸入說明 : 
共計三個測資點。
每組測資有兩行
第一行有整數n(0<n<100)代表有幾個數,
第二行有n個數A1...An(0<An<100)表示每個磁鐵上的數字
輸出說明 : 
第一行請輸出最一開始的狀態
第二行開始,輸出「刪去第一項後,全部倒轉的結果」
直到數字只剩下一個為止
範例輸入 : help
5
99 77 66 44 11
7
1 98 95 52 56 34 43
範例輸出:
99 77 66 44 11
11 44 66 77
77 66 44
44 66
66

1 98 95 52 56 34 43
43 34 56 52 95 98
98 95 52 56 34
34 56 52 95
95 52 56
56 52
52
提示 : 
這只是山寨板的蜈蚣,如果這題對你輕而易舉,請試試morris1028出的強化蜈蚣:
http://zerojudge.tw/ShowProblem?problemid=d569
標籤:
出處: 
jack1 (管理:jack1)

import java.util.Scanner;

public class d562 {

public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
int[] arr=new int[n];
for(int i=0;i<n;i++)
arr[i]=sc.nextInt();
int start=0,end=n,flag=0;
String str;                                     //改用字串一次println出來居然比較快...
for(int i=flag;i<=n/2;i++){
str="";
while(flag<end){
//System.out.print(arr[flag]+" ");
str+=arr[flag]+" ";
flag++;
}
System.out.println(str);
end--; flag--;
str="";
while(flag>start){
//System.out.print(arr[flag]+" ");
str+=arr[flag]+" ";
flag--;
}
start++; flag++;
System.out.println(str);
}
}

}

}

沒有留言:

張貼留言