牛客练习赛87 -A-中位数

中位数

  •  比赛主页
  •  我的提交

时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述 

给出长度为nn的数组a1,a2,...,ana1​,a2​,...,an​,做确切地kk次操作,每次操作选择两个不同的正整数i,ji,j使得ai=ai+ajai​=ai​+aj​,并将ajaj​从数组中删除。
kk次操作后序列的中位数最小可以是多少?
中位数:一个长度为mm的序列,它的中位数是将这mm数升序排列后第⌊m+12⌋⌊2m+1​⌋个数。

输入描述:

 
  

输入包含TT组测试用例,第一行一个整数TT

每组测试用例第一行两个整数n,kn,k

每组测试用例第二行nn个整数a1 a2 ... ana1​ a2​ ... an​

输出描述:

 
  

输出TT行第ii行为第ii组测试用例的答案。

示例1

输入

复制

1
5 1
4 3 5 1 2

输出

复制

2

备注:

1≤T≤5,1≤ai≤200000,2≤n≤200000,1≤k 
  
#include
#include
#include
#include 
#include
using namespace std;
const int maxn=1e6+10;
int a[maxn];
void solve(){
    int n,k;
    cin>>n>>k;
    long long  sum=0;
    for(int i=1;i<=n;i++) cin>>a[i],sum+=a[i];
    sort(a+1,a+n+1);
    if(k==n-1) cout<>t;
    while(t--){
        solve();
    }
    return 0;
}

你可能感兴趣的:(codeforce,算法刷题)