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.