现在的位置: 首页 > 综合 > 正文

codechef Chef and easy problem

2018年04月24日 ⁄ 综合 ⁄ 共 1200字 ⁄ 字号 评论关闭

Problem Description

Chef and Roma are playing a game. Rules of the game are quite simple.
Initially there are N piles of stones on the table.
In each turn, a player can choose one pile and remove it from the table.
Each player want to maximize the total number of stones removed by him.
Chef takes the first turn.

Please tell Chef the maximum number of stones he can remove assuming that both players play optimally.

Input

The first line of the input contains an integer T denoting the number of test cases. The description of Ttest cases follows.

The first line of each test case contains a single integer N denoting the number of piles.

The second line contains N space separated integers A1A2, ..., AN denoting the number of stones in each pile.

Output

For each test case, output a single line containg the maximum number of stones that Chef can remove.

Constraints

  • 1 ≤ Ai ≤ 109
  • Subtask 1 (35 points): T = 10, 1 ≤ N ≤ 1000
  • Subtask 2 (65 points): T = 10, 1 ≤ N ≤ 105

Example

Input:

2 3 1 2 3 3 1 2 1

Output:

4 3

题解

贪心。注意lld。

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
int T,n,a[100002];
ll ans;
void work()
{
	scanf("%d",&n);
	ans=0;
	int i;
	for(i=1;i<=n;i++)
	   scanf("%d",&a[i]);
	sort(a+1,a+n+1);
	for(i=n;i>=1;i-=2)
	   ans+=a[i];
	printf("%lld\n",ans);
}
int main()
{
	scanf("%d",&T);
	while(T--) work();
	return 0;
}

抱歉!评论已关闭.