【GDOI2003】求值{快速排序}

题目

Description
  给出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的值。


解题思路

快速排序+枚举的“水题”


代码

#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std; 
int n,x[50001],ans,answ; 
int main()
{
    scanf("%d",&n); 
    for (int i=1;i<=n;i++)
     scanf("%d",&x[i]); 
    sort(x+1,x+n+1); int g=0; 
    for (int i=1;i<=n;i++)
     if (g==0) {ans+=x[i]; g=1; } 
     else { answ+=x[i]; g=0;}
    printf("%d",abs(ans-answ)); 
}

猜你喜欢

转载自blog.csdn.net/qq_39897867/article/details/80972582