时间限制:1.0s
内存限制:512.0MB
题面描述
小杨有一个包含n个数字的序列A,即A={a1,a2.an},他想将其中大于k的数字都替换为序列的最大值,将其中小于k的数字都替换为序列的最小值,请你帮他计算出替换后的序列。
输入格式
第一行包含两个正整数n,k,含义如题面所示。
第二行包含n个数字,代表序列A。
输出格式
输出n个整数,代表替换后的结果。
输入描述
5 0
-2 -1 0 1 2
输出描述
-2 -2 0 2 2
参考代码
#include <bits/stdc++.h>
using namespace std;
int a[100010];
int main() {
int n, k;
cin >> n >> k;
for (int i = 1; i <=n; i++) {
cin >> a[i];
}
int max_value = a[1],min_value=a[1];
for (int i = 1; i <=n; i++) {
max_value=max(max_value,a[i]);
min_value=min(min_value,a[i]);
}
for (int i = 1; i <=n; i++) {
if (a[i] > k) {
a[i] = max_value;
} else if (a[i] < k) {
a[i] = min_value;
}
if (i != n) {
cout << a[i] << " ";
} else {
cout << a[i] << endl;
}
}
return 0;
}
928

被折叠的 条评论
为什么被折叠?



