时间限制:1秒
空间限制:32768K
牛牛和羊羊正在玩一个纸牌游戏。这个游戏一共有n张纸牌, 第i张纸牌上写着数字ai。
牛牛和羊羊轮流抽牌, 牛牛先抽, 每次抽牌他们可以从纸牌堆中任意选择一张抽出, 直到纸牌被抽完。
他们的得分等于他们抽到的纸牌数字总和。
现在假设牛牛和羊羊都采用最优策略, 请你计算出游戏结束后牛牛得分减去羊羊得分等于多少。
输入描述:
输入包括两行。 第一行包括一个正整数n(1 <= n <= 105),表示纸牌的数量。 第二行包括n个正整数ai(1 <= ai <= 109),表示每张纸牌上的数字。
输出描述:
输出一个整数, 表示游戏结束后牛牛得分减去羊羊得分等于多少。
输入例子1:
3 2 7 4
输出例子1:
扫描二维码关注公众号,回复:
9597540 查看本文章
5
#include <map>
#include <cmath>
#include <queue>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <time.h>
#include <vector>
#include <list>
#include <iostream>
#include<iomanip>
#include<time.h>
#define N_MAX 205
#define INF (0x3f3f3f3f)
using namespace std;
int Data[100001] = { 0 };
bool complare(int a, int b)
{
return a > b;
}
int main()
{
int N, M;
cin >> N;
int sum = 0, i = 0;
for (i = 0; i < N; i++)
{
cin >> Data[i];
}
sort(Data, Data + N, complare);
for (i = 0; i + 1 < N; i = i + 2)
{
sum += Data[i] - Data[i + 1];
//cout << sum << endl;
}
if (i < N)
sum += Data[i];
cout << sum;
return 0;
}