TouchStone
  Please Login
Login Sign Up
距离明年CSP第一轮: ??天 距离CSP第二轮: ??天 距离NOIP还有: ??天
 Homepage  Problem Set  Examinations  Submissions  Discussions  Statistics
  • Home
  • Problem Set
  • P2180
  • Problem
  • P2180交换排序
    Limits : Time Limit : 10000 MS   Memory Limit : 65536 KB
    Description

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

    Input Format

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

    Output Format

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

    Sample Input

    5
    9
    1
    0
    5
    4
    3
    1
    2
    3
    0

    Sample Output

    6
    0

    Hint

    共两组输入数据,分别是:
    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);

    Source  Waterloo local 2005.02.05