TouchStone
  Please Login
ログイン 登録
 ホームページ  問題セット  試験一覧  提出状況  掲示板  統計情報
  • ホーム
  • 問題セット
  • P2180
  • 問題
  • P2180交换排序
    制限 : 時間制限 : 10000 MS   メモリ制限 : 65536 KB
    問題説明

    给出一个长度为n的整数数列,你每一次可以随意交换其中任意相邻两个数字的位置。问你至少交换几次,才能使得这个数列是个单调递增数列。
    例如有数列:9 1 0 5 4
    结果极限排序后:0 1 4 5 9

    入力形式

    有多组输入数据,对于每组输入数据:
    第一行,一个整数 n(n < 500,000)表示待排序的数列长度。
    接下来n行,第i行表示数列中的第i个整数a[i](0 ≤ a[i] ≤ 999,999,999)
    当n=0时,表示输入结束。

    出力形式

    对于每组输入数据,输出一个整数,表示最少交换的次数

    サンプル入力

    5
    9
    1
    0
    5
    4
    3
    1
    2
    3
    0

    サンプル出力

    6
    0

    ヒント

    共两组输入数据,分别是:
    5
    9
    1
    0
    5
    4

    3
    1
    2
    3

    注意,结果可能超过int的范围,建议用long long 类型
    long long的定义方式为:long long x;
    long long 的输出有两种方式:
    c++方式:cout<<x;
    c语言方式:printf("%lld",x);
    scanf("%lld",&x);

    ソース  Waterloo local 2005.02.05