求助,错最后一个点
//头文件
#define ll long long
#define rep(i, a, b) for (long long i = (a); i <= (b); ++i)
#define rrep(i, a, b) for (long long i = (a); i <= (b); --i)
bool cmp(int t1, int t2) {
return t1 > t2;}
int main() {
ll n, k;
cin >> n >> k;
ll a[n + 3];
ll odd[n + 3];
ll ev[n + 3];
ll* p = odd;
ll* q = ev;
ll num1 = 0;
ll num0 = 0;
memset(odd,0,sizeof(odd));
memset(ev,0,sizeof(ev));
rep(i, 1, n) {
cin >> a[i];
if (a[i] % 2 != 0) {
*p = a[i];
p++;
num1++;
}
if (a[i] % 2 == 0) {
*q = a[i];
q++;
num0++;
}
}
if (num1 < k && num0 < k) {
cout << "0" << endl;
return 0;
}
sort(odd, odd + num1, cmp);
sort(ev,ev+num0,cmp);
ll o=0;
ll e=0;
rep(i,1,k)
{o+=odd[i-1];
e+=ev[i-1];
}
cout<<max(o,e)<<endl;
return 0;
}