测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题