4.21打卡
一、
有 nnn 个玩具,第 iii 个玩具的价格是 aia_iai 元,超市里搞促销活动,购买 222 个玩具即可免单其中价格较低的一个,价格相等也免单其中一个。牛牛想买下所有玩具,至少需要花多少元?
输入描述:
第一行一个正整数 n(1≤n≤106)n(1\le n\le10^6)n(1≤n≤106)。
第二行 nnn 个正整数,第 iii 个表示 ai(1≤ai≤109)a_i(1\le a_i\le10^9)ai(1≤ai≤109)。
输出描述:
输出一行一个正整数,表示答案。
#include<iostream>
using namespace std;
void quick_sort(long long q[], long long l, long long r)
{
if (l >= r) return;
long long i = l - 1, j = r + 1, x = q[l + r >> 1];
while (i < j)
{
do i ++ ; while (q[i] < x);
do j -- ; while (q[j] > x);
if (i < j) swap(q[i], q[j]);
}
quick_sort(q, l, j), quick_sort(q, j + 1, r);
}
int main(){
long long n,i;
cin >> n;
long long a[n];
for(i=0;i<n;i++){
cin >> a[i];
}
quick_sort(a,0,n-1);
long long p=n/2;
for(i=n-2;i>=0;i-=2){
a[i]=0;
}
long long sum=0;
for(i=0;i<n;i++){
sum+=a[i];
}
cout << sum;
}
二、