一開始測資是 3 2 1 要排序
3 2 1 -> 3、2 交換
2 3 1 -> 3、1 交換
交換完 -> 2 1 3.......
可是不是還沒有排序完嗎??答案是9耶@@ 可是排完 答案應該是12才對啊!!
為什麼呢..............
一開始測資是 3 2 1 要排序
3 2 1 -> 3、2 交換
2 3 1 -> 3、1 交換
交換完 -> 2 1 3.......
可是不是還沒有排序完嗎??答案是9耶@@ 可是排完 答案應該是12才對啊!!
為什麼呢..............
看清楚題目喔(雖然很長的背景...
為方便編號用英文字母代替
一開始是C,A,B 分別 A=2 B=1 C=3
然後換位
C,A,B
A,C,B //A跟C換 2+3=5
A,B,C //B跟C換 1+3=4
所以一共是9
一開始測資是 3 2 1 要排序
3 2 1 -> 3、2 交換
2 3 1 -> 3、1 交換
交換完 -> 2 1 3.......
可是不是還沒有排序完嗎??答案是9耶@@ 可是排完 答案應該是12才對啊!!
為什麼呢..............
看清楚題目喔(雖然很長的背景...
為方便編號用英文字母代替
一開始是C,A,B 分別 A=2 B=1 C=3
然後換位
C,A,B
A,C,B //A跟C換 2+3=5
A,B,C //B跟C換 1+3=4
所以一共是9
原來如此!! 我了解了,謝謝大大的解答^_^"
不過嘛
這次到我有問題了...
WA (line:1)您的答案為: 15 正確答案為: 9
#include <stdio.h>
int main(){
int T,N,i,s,M[1000],W[1000],TW;
scanf("%d",&T);
for (;T>0;T--){
scanf("%d",&N);
for (i=1;i<=N;i++)
scanf("%d",&M[i]);
for (i=1;i<=N;i++)
scanf("%d",&W[i]);
for (i=1,TW=0;i<=N;i++){
if(M[i]>M[i+1]){
TW=W[i]+W[i+1]+TW;
s=M[i];
M[i]=M[i+1];
M[i+1]=s;
s=W[i];
W[i]=W[i+1];
W[i+1]=s;
i=0;
}
}
printf("%d\n",TW);
}
return 0;
}