小明要组织一台晚会,总共准备了 n 个节目。然后晚会的时间有限,他只能最终选择其中的 m 个节目。
这 n 个节目是按照小明设想的顺序给定的,顺序不能改变。
小明发现,观众对于晚上的喜欢程度与前几个节目的好看程度有非常大的关系,他希望选出的第一个节目尽可能好看,在此前提下希望第二个节目尽可能好看,依次类推。
小明给每个节目定义了一个好看值,请你帮助小明选择出 m 个节目,满足他的要求。
输入格式
输入的第一行包含两个整数 n, m ,表示节目的数量和要选择的数量。
第二行包含 n 个整数,依次为每个节目的好看值。
输出格式
输出一行包含 m 个整数,为选出的节目的好看值。
#include<stdio.h>
int main()
{
int n,m,i,j;
int temp;
int a[100000];
int p[100000];
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
p[i]=i;
}
for (i=0; i<n-1; i++)
for (j=0; j<n-1-i; j++)
{
if (a[j] < a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
}
for (i=0; i<(m-1); i++)
for (j=0; j<(m-1)-i; j++)
{
if (p[j] > p[j+1])
{
temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
for (j=0; j<m; j++) printf("%d ",a[j]);
return 0;
}