纪中暑假培训:Date 4:【GDOI2003】求值 (Standard IO)

2018.07.09【2018提高组】模拟C组:求值

问题描述:

给出N个整数X1,X2,X3,…,Xn,将这N个数从小到大排序为:A1,A2,A3,…,An,记数列A1,A2,A3,…,An的奇数项的和为P,偶数项之和为Q,令T=|P-Q|,计算T的值。

输入输出:

Input

  输入文件的第一行为整数N(1<=N<=50000)。
  接下来的N行每行有一个整数,按顺序给出X1,X2,X3,。。。Xn的值(|Xi|<=1000)

Output

  输出整数T的值。

Sample Input

3
1
3
2

Sample Output

2

思路:暴力模拟

var
 a:array[0..500005] of longint;
 n,i,ans:longint;

procedure qsort(l,r:longint);
 var
 i,j,key,t:longint;
begin
 i:=l;
 j:=r;
 key:=a[(l+r)div 2];
 repeat
  while a[i]<key do inc(i);
  while a[j]>key do dec(j);
   if i<=j then begin
                 t:=a[i];
                 a[i]:=a[j];
                 a[j]:=t;
                 inc(i);
                 dec(j);
                end;
 until i>j;
 if l<j then qsort(l,j);
 if i<r then qsort(i,r);
end;

begin
 readln(n);
 for i:=1 to n do
  readln(a[i]);
 qsort(1,n);
 for i:=1 to n do
  if i mod 2=1 then ans:=ans+a[i]
               else ans:=ans-a[i];
 if ans<0 then writeln(0-ans)
 else
 writeln(ans);
end.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值