题目描述

因为奶牛们的节食运动(奶牛还节食?)给农夫JOHN余下了一大批干草无法处理,所以他准备要开一个拍卖会去出售他的干草。他有N(1<=N<=1000)批干草(每批大约100捆)。他的客户有M个(1<=M<=1000),都是和他相邻的农夫。 第I名农夫会告诉农夫JOHN他会为农夫JOHN的每批干草付P_i的钱(1<=P_i<=1,000,000)。每个农夫都想买(也只想买)农夫JOHN的一批草料。 为了确保农夫们不会互相嫉妒,所以农夫JOHN决定要以一个固定的价格出售他的草料。每一个出价比农夫JOHN的要价要高的农夫将会买到草料,余下的将会被拒绝购买:< 请你帮助农夫JOHN找出能让他赚到最多的钱的最低的单批草料的售价。

输入输出格式

输入格式:

* 第一行:两个被空格隔开的整数,N和M * 第二行到第M+1行:第I+1行只包含一个整数:P_i

输出格式:

第一行:由空格隔开的两个整数:农夫JOHN能出的每批草料的最低价格,以及他能赚到的最多的钱

输入输出样例

输入样例#1: 复制

5 4
2
8
10
7
输出样例#1: 复制

7 21

说明

输入样例解释:

农夫JOHN有5批草料,4个农夫想要购买。他们出价分别为:每批草料为2,8,10和7。

输出样例解释:

农夫JOHN应该把价格设定为7,这样会有3个农夫会付钱买草料,农夫JOHN自己会挣到21的钱。

/*
要让john卖更多的钱。
我们把每个农夫出的钱降序排序。
枚举每个农夫 i=1 -> m ,
那么i和i之前的农夫 1->i 都可以用p[i]的价格买到草料,
所以 ans=max(ans,p[i]*min(i,n)),
为什么要写min(i,n),
是因为 可能会出现草料比农夫多的情况,
但是最多只会有n个农夫来买草料,多余的(m-n)批草料是不会有人买的。
所以,我们也可以直接让i枚举到min(n,m)
然后让ans=max(ans,p[i]*i)就行了。
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; const int N=1e3+; int n,m;
int p[N]; int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=m;++i)
scanf("%d",&p[i]);
sort(p+,p+m+,greater<int>() );
int ans_sum=,ans_min=;
// for(int i=1;i<=m;++i)
// {
// if(ans_sum<p[i]*min(i,n))
// {
// ans_sum=p[i]*min(i,n);
// ans_min=p[i];
// }
// }
for(int i=;i<=min(n,m);++i) //也可以这样写,直接枚举到min(人,草)
{
if(ans_sum<p[i]*i)
{
ans_sum=p[i]*i;
ans_min=p[i];
}
}
printf("%d %d",ans_min,ans_sum);
return ;
}

P2637 第一次,第二次,成交!的更多相关文章

  1. 洛谷P2637第一次,第二次,成交! 模拟?DP?

    今天水来一天,就贴道水吧.. 原题>>https://www.luogu.org/problem/show?pid=2637<< 题目描述 因为奶牛们的节食运动(奶牛还节食?) ...

  2. OO第一次博客作业

    OO第一次博客作业 一.三次作业的bug反省 1.自己发现别人的问题 (1)输入处理的问题,比如第一次作业,主要就是处理输入的字符串,然后有同学的正则表达式有问题,则对于一些错误输入就不能正确判断. ...

  3. 广州商学院16级软工一班&二班-第二次作业成绩

    作业地址 https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 https://edu.cnblogs.com/campus/gzc ...

  4. Morris.js和flot绘制折线图的比较

    [文章摘要] 最近用开源的AdminLTE做框架感觉效果特别好,其针对图表库Morris.js和flot都提供了不错的支持,也都提供了这两者的例子.不过Morris.js是基于Raphael.js来的 ...

  5. CCNA网络工程师学习进程(3)常规网络设计模型与基本的网络协议

        本节介绍分层的网络设计模型与基本的网络协议,包括ARP协议,ICMP协议和IP协议.     (1)三层网络架构: 一个好的园区网设计应该是一个分层的设计.一般分为接入层.汇聚层(分布层).核 ...

  6. 谢谢博客-园,让我不再有开源AYUI的想法

    第一次 第二次 教程不会在博客园上写了,具体的看我官网博客吧,谢谢大家了 ================= 我是个有素质的程序员 艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹艹 ...

  7. “康园圈--互联网+校园平台“项目之Sprint3

    sprint3任务列表 1.部署项目内测版上线,并绑定相应域名. 2.添加测试用的模拟数据. 3.写已实现功能及效果汇报文档. 4.写项目总结博客. 5.记录并分析用户反馈. 看板动态 第一次 第二次 ...

  8. “康园圈--互联网+校园平台“项目之sprint2

    一.sprint2任务列表 1.部署框架,并上传代码到github. 2.原型设计 * 设计首页界面原型(包括功能公告.快速通道等展示栏) * 设计店铺浏览页面原型 * 设计店内浏览页面原型 * 设计 ...

  9. KTV点歌系统

    经过十多天的艰苦奋战,MyKTV点歌系统终于成型,从刚开始接到项目的茫然,到完成项目时的喜悦,整个过程的艰辛和付出只有自己知道.虽然这个项目还有许多需要完善的地方,譬如添加歌词信息,实现窗体的美化等, ...

随机推荐

  1. java redisUtils工具类很全

    GitHub地址:https://github.com/whvcse/RedisUtil redisUtils工具类: package com.citydo.utils; import org.spr ...

  2. Vuex 刷新后数据丢失问题 Typescript

    问题描述:Vuex保存的数据在页面刷新后会全部丢失清除 问题解决方案:使用sessionstorage进行保存,在页面刷新时保存至sessionStorage,页面在加载时再进行填充   (另有vue ...

  3. 什么叫工业4.0,这篇接地气的文章终于讲懂了(ZT)

    原地址:https://www.cnblogs.com/namei/p/6110382.html 笔者早年从事过工业自动化行业,后来去了几个城市,讲过<工业互联网与工业文明史>这门课,以至 ...

  4. python入门-windows下anaconda环境搭建

    1. anaconda下载 根据根据自己系统下载32位还是64位,还有版本 python3.6——64bit python3.6——32bit python2.7——64bit python2.7—— ...

  5. FLV 数据封装格式

    https://www.cnblogs.com/chyingp/p/flv-getting-started.html https://blog.csdn.net/ai2000ai/article/de ...

  6. Android拍照和从相册获取照片

    1.从相册获取照片 private void openAlumb() { //mRxPermissions:三方权限库 mRxPermissions .request(Manifest.permiss ...

  7. java线程中如何使用spring依赖注入

    实现一个线程继承了Thread或实现Runnable接口,想在run方法中使用spring依赖注入(操作数据库),此时报错为空指针,就是说没有注入进来. 实验了几种方式,分别说一下优缺点. 1:写了工 ...

  8. ipv4与ipv6 Inet4Address类和Inet6Address类

    在设置本地IP地址的时候,一些人会疑惑IPv4与IPv6的区别是什么?下面由学习啦小编为你分享ipv4与ipv6的区别的相关内容,希望对大家有所帮助. ipv4与ipv6的区别 在windows 7以 ...

  9. VMware15 桥接模式无法上网

    1. 检查宿主机网络连接是否成功 2. 检查宿主机网络适配器列表是否有多余的 loop 等回环类型的适配器(楼主在安装npcap程序后系统出现回环类型的适配器,即把包发回本地,所有的虚拟机的桥接模式都 ...

  10. PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted 错误

    php运行一段时间后,部分页面打不开,查看nginx日志里面一直在报PHP message: PHP Fatal error:  Allowed memory size of 134217728 by ...