#8536: 請問~


ak5612599 (魂o小草)


一開始測資是 3 2 1 要排序

3 2 1 -> 3、2 交換

2 3 1 -> 3、1 交換

交換完 -> 2 1 3.......

可是不是還沒有排序完嗎??答案是9耶@@  可是排完 答案應該是12才對啊!!

為什麼呢.............. 

#8537: Re:請問~


caedmon_ng (Caedmon)


一開始測資是 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  

#8538: Re:請問~


ak5612599 (魂o小草)


一開始測資是 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  

 

 

原來如此!! 我了解了,謝謝大大的解答^_^" 



#8539: Re:請問~


caedmon_ng (Caedmon)


不過嘛

這次到我有問題了...

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;

}