A29922. 数字替换
填空题
中等
知识点
题目描述
数字替换
时间限制:1.0 s 内存限制:512.0 MB
题目描述
小杨有一个包含 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 <iostream>
#include <vector>
#include <algorithm>
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;
}
上一题
下一题