B. Reading
来源:互联网 发布:网络代购是怎么挣钱 编辑:程序博客网 时间:2024/06/04 19:57
Vasya is going to the Olympics in the city Ntown by train. The boy wants to read the textbook to prepare for the Olympics. He counted that he needed k hours for this. He also found that the light in the train changes every hour. The light is measured on a scale from 0 to 100, where 0 is very dark, and 100 is very light.
Vasya has a train lighting schedule for all n hours of the trip — n numbers from 0 to 100 each (the light level in the first hour, the second hour and so on). During each of those hours he will either read the whole time, or not read at all. He wants to choose k hours to read a book, not necessarily consecutive, so that the minimum level of light among the selected hours were maximum. Vasya is very excited before the upcoming contest, help him choose reading hours.
The first input line contains two integers n and k (1 ≤ n ≤ 1000, 1 ≤ k ≤ n) — the number of hours on the train and the number of hours to read, correspondingly. The second line contains n space-separated integers ai (0 ≤ ai ≤ 100), ai is the light level at the i-th hour.
In the first output line print the minimum light level Vasya will read at. In the second line print k distinct space-separated integersb1, b2, ..., bk, — the indexes of hours Vasya will read at (1 ≤ bi ≤ n). The hours are indexed starting from 1. If there are multiple optimal solutions, print any of them. Print the numbers bi in an arbitrary order.
5 320 10 30 40 10
201 3 4
6 590 20 35 40 60 100
351 3 4 5 6
In the first sample Vasya should read at the first hour (light 20), third hour (light 30) and at the fourth hour (light 40). The minimum light Vasya will have to read at is 20.
解题说明:此题就是找出一列数中最大的k个数,并且输出原来数列中这k个数的位置。可以用C++里面的pair结构记录下每个数和其顺序,然后对数字进行排序,最后输出即可,当然也可以用两个数组来加以实现。
#include <iostream>#include<algorithm>#include<fstream>using namespace std;pair<int,int>mas[1003];int main(){int n,k,i;freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);cin>>n>>k;for(i=0;i<n;i++){cin>>mas[i].first;mas[i].second=i+1;}sort(mas,mas+n);cout<<mas[n-k].first<<endl;for(i=n-k;i<n;i++){cout<<mas[i].second<<" ";}cout<<endl;return 0;}
- B. Reading
- Problem B Reading books
- GDCPC 2008:B Reading books
- Mister B and Book Reading
- Mister B and Book Reading
- B. Reading codeforces-problem-234B
- BestCoder Round #8 B题 Reading comprehension
- HDU 4990 / BC 8B Reading comprehension
- CF820A-Mister B and Book Reading
- Codeforces820A Mister B and Book Reading
- A. Mister B and Book Reading
- Reading...
- Reading...
- Reading...
- Reading...
- Reading...
- Reading...
- Reading...
- node.js发送邮件
- Toast的五种效果
- Linux cp命令
- Android读写文件
- Android Audio Overview
- B. Reading
- hdu2068 错排+组合
- maven环境快速搭建
- JAVA经典算法40题
- MFC中按键禁用后,仍响应点击
- Linux上iptables防火墙的基本应用教程
- OpenCV中cvSplit图像的通道分离
- aidl 传递对象
- JNA 中的unsigned 类型映射