社区讨论
为何时间超限?求调
灌水区参与者 6已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @lo30ngoq
- 此快照首次捕获于
- 2023/10/23 22:51 2 年前
- 此快照最后确认于
- 2023/10/23 22:51 2 年前
C
有n个数,保存在数组a[1...n],每次挑选数组当中的最大的一个数(如果有多个数都是最大的,随便挑选其中的一个最大数),
把该数变成原来的一半(向下取整,例如最大的数是5,那么会变成2),经过m次这样的操作之后,把a数组所有的数从小到大输出。
输入格式
第一行,两个整数,n和m。1<=n<=100, 1<=m<=10^9。
第二行,n个整数,第i个整数是a[i], 0<=a[i]<=10^9。
输出格式
一行,n个整数,从小到大的次序输出,相邻两个数之间输出一个空格。
输入/输出例子1
输入:
6 4
1 2 3 21 5 4
输出:
1 2 2 2 3 4
样例输入 Copy
CPP#include <bits/stdc++.h>
using namespace std;
long long n,m,a[120004];
int main() {
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}sort(a+1,a+n+1);
for(int i=m;i>=1;i--)
{a[n]/=2;
sort(a+1,a+n+1);
}
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
return 0;
}
回复
共 7 条回复,欢迎继续交流。
正在加载回复...