sort是一种快速排序,但又在快速排序上增加了亿点
比快速排序好亿点
排序方法:
sort(a,a+n);
sort默认是从小到大,如果要从大到小只需再加一个参数:
bool cmp(int a,int b)
{
return a>b;
}
sort(a,a+n,cmp);
cmp建议bool
注意:>是从大到小,<是从小到大
还有,就是sort是包括a[0]不包括a[n]
讲这俩参数要讲几十年
直接总结(超重点):第一个参数下标为w,则a+w,是第w个数,则a+w-1;
第二个参数下标为w,则a+w+1,是第w个数,则a+w;
现在,大家就可以做此题,锻炼sort:
#1260. 津津的宝石矿场
内存限制:256 MiB时间限制:1000 ms标准输入输出
题目类型:传统评测方式:文本比较
上传者: root
题目描述
津津来到了南非旅游,参观了当地的南非矿场,当地商人举办了一个明眼鉴宝的活动,商人将 n 块不同价值的宝石放在了展柜里,然后参与活动的人可以从这 n 块宝石里挑选 m 块宝石带走,但是参与活动需要交纳 c 元的入场费。聪明的津津是一个鉴宝大师,她能够准确的知晓每一块宝石的价格,请您编程预测一下津津能不能通过这场活动赚到钱呢?(保证测试点结果一定为盈利或者亏损)
输入格式
输入数据共三行
第一行两个整数 n , m (n表示宝石数量,m表示能够带走的数量)
第二行一个实数 c(入场费)
第三行有n个实数(可能会出现小数) 表示每一块宝石的价格
输出格式
输出数据共两行
如果津津能够赚到钱则输出
Good Game!
赚了多少钱保留到小数点后三位
如果津津不能够赚到钱则输出
Bad Game!
亏了多少钱保留到小数点后三位
样例
输入样例
复制6 3
10
1 1 1 1 1 5
输出样例
复制Bad Game!
3.000
数据范围与提示
n不大于100
#include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
double x[10000];
bool cmp(double q,double w)
{
return q>w;
}
int main()
{
int a,b;
cin>>a>>b;
double cnt;
cin>>cnt;
for(int l=0;l<a;l++)
{
cin>>x[l];
}
sort(x,x+a,cmp);
double z;
for(int l=0;l<b;l++)
{
z+=x[l];
}
if(z>=cnt)
{
printf("Good Game!\n%.3lf",z-cnt);
}else printf("Bad Game!\n%.3lf",cnt-z);
return 0;
}