社区讨论

为何时间超限?求调

灌水区参与者 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 条回复,欢迎继续交流。

正在加载回复...