目录
- #include
- #include
- #include
- using namespace std;
- void QuickSort(vector<int>&a,int begin,int end)//快排
- {
- if(begin>=end)
- return;
- int left = begin;
- int right = end;
- int keyi = left;//基准值的下标
- while(left
//降序排列 - {
- while(left
=a[keyi]) - {
- --right;
- }
- while(left
- {
- ++left;
- }
- swap(a[left],a[right]);
- }
- swap(a[left],a[keyi]);
-
- QuickSort(a,begin,left);
- QuickSort(a,left+1,end);
- }
- int main()
- {
- int n;
- cin>>n;
- vector<int>data(3*n,0);
- for(int i=0;i<3*n;i++)
- {
- cin>>data[i];
- }
-
- QuickSort(data,0,3*n-1);
- int k=1;
- int sum=0;
- for(int i=3*n-2;i>=0&& k<=n;i-=2)
- {
- sum+=data[i];
- k++;
- }
- cout<
- return 0;
- }
(二)正确代码
1. long long sum=0
- #include
- #include
- #include
- using namespace std;
- void QuickSort(vector<int>&a,int begin,int end)//快排
- {
- if(begin>=end)
- return;
- int left = begin;
- int right = end;
- int keyi = left;//基准值的下标
- while(left
//升序排列 - {
- while(left
=a[keyi])//右边找小 - {
- --right;
- }
- while(left
//左边找大 - {
- ++left;
- }
- swap(a[left],a[right]);
- }
- swap(a[left],a[keyi]);
-
- QuickSort(a,begin,left);
- QuickSort(a,left+1,end);
- }
- int main()
- {
- int n;
- cin>>n;
- vector<int>data(3*n,0);
- for(int i=0;i<3*n;i++)
- {
- cin>>data[i];
- }
-
- QuickSort(data,0,3*n-1);
- int k=1;
- long long sum=0;
- for(int i=3*n-2;i>=0&& k<=n;i-=2)
- {
- sum+=data[i];
- k++;
- }
- cout<
- return 0;
- }
2. #define int long long
- #include
- #include
- #include
- using namespace std;
-
- #define int long long
- void QuickSort(vector<int>&a,int begin,int end)//快排
- {
- if(begin>=end)
- return;
- int left = begin;
- int right = end;
- int keyi = left;//基准值的下标
- while(left
//升序排列 - {
- while(left
=a[keyi])//右边找小 - {
- --right;
- }
- while(left
//左边找大 - {
- ++left;
- }
- swap(a[left],a[right]);
- }
- swap(a[left],a[keyi]);
-
- QuickSort(a,begin,left);
- QuickSort(a,left+1,end);
- }
- signed main()
- {
- int n;
- cin>>n;
- vector<int>data(3*n,0);
- for(int i=0;i<3*n;i++)
- {
- cin>>data[i];
- }
-
- QuickSort(data,0,3*n-1);
- int k=1;
- int sum=0;
- for(int i=3*n-2;i>=0&& k<=n;i-=2)
- {
- sum+=data[i];
- k++;
- }
-
-
相关阅读:
【0146】判断System V shared memory以前的段是否存在并正在使用?(3)
期末前端web大作业——HTML+CSS+JavaScript仿京东购物商城网页制作(7页)
JVM——1.JVM概述
并查集(Find-Union)解决无向图连通数量问题
NBT:快准全!geNomad——宏病毒组鉴定新工具
硬件开发笔记(六): 硬件开发基本流程,制作一个USB转RS232的模块(五):创建USB封装库并关联原理图元器件
Codeforces Round #723 (Div. 2) C2. Potions (Hard Version)
Vue3.2 + Element-Plus 二次封装 el-table(Pro版)
人工智能第2版学习——博弈中的搜索2
Ranger (二) ---------- Ranger 安装
-
原文地址:https://blog.csdn.net/m0_63783532/article/details/133215902