腾讯笔试:纸牌游戏

时间限制:1秒

空间限制:32768K

牛牛和羊羊正在玩一个纸牌游戏。这个游戏一共有n张纸牌, 第i张纸牌上写着数字ai。
牛牛和羊羊轮流抽牌, 牛牛先抽, 每次抽牌他们可以从纸牌堆中任意选择一张抽出, 直到纸牌被抽完。
他们的得分等于他们抽到的纸牌数字总和。
现在假设牛牛和羊羊都采用最优策略, 请你计算出游戏结束后牛牛得分减去羊羊得分等于多少。

输入描述:

输入包括两行。
第一行包括一个正整数n(1 <= n <= 105),表示纸牌的数量。
第二行包括n个正整数ai(1 <= ai <= 109),表示每张纸牌上的数字。

输出描述:

输出一个整数, 表示游戏结束后牛牛得分减去羊羊得分等于多少。

输入例子1:

3
2 7 4

输出例子1:

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;
}
发布了104 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Yanpr919/article/details/100183191