1910: 【入门】马里奥的银币3
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:22
解决:7
题目描述
马里奥有很多银币,有一天他又得到了一张魔法卡,只要使用这张魔法卡,就可以使得他的银币里面所有金额最大的银币都翻倍,所有金额最小的银币都加1(也就是银币中金额最大的银币和金额最小的银币都可能不止1个),其余的银币的金额不变;马里奥顿时觉得自己要发财了,迫不及待的使用了这张魔法卡,请你求出,马里奥使用了这张魔法卡之后,他的银币的金额分别是多少?
比如:假设马里奥存有的银币金额分别为8 5 2 8 2 4,那么使用魔法卡之后,他的银币的金额变为16 5 3 16 3 4;
输入
第一行是一个整数n代表马里奥有n个银币(n<=1000)
第二行有n个整数,用空格隔开,代表马里奥每个银币的金额
输出
一行有n个整数,用空格隔开,代表使用过魔法卡之后,马里奥的银币的金额,分别是多少?
样例输入 复制
6
8 2 7 8 2 4
样例输出 复制
16 3 7 16 3 4
提示
n=int(input())
ls=list(map(int,input().split()))
maxV=max(ls)
minV=min(ls)
for i in range(n):
if (ls[i]==maxV):
ls[i]*=2
elif (ls[i]==minV):
ls[i]+=1
print(' '.join(map(str,ls)))
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[1010],n,i,maxx,minx;
cin>>n;
for(i = 0;i < n;i++)
cin>>a[i];
maxx = a[0];
minx = a[0];
for(i = 1;i < n;i++){
if(a[i] > maxx)
maxx = a[i];
if(a[i] < minx)
minx = a[i];
}
for(i = 0;i < n;i++){
if(a[i] == maxx)
a[i] = a[i] * 2;
else if(a[i] == minx)
a[i] = a[i] + 1;
}
for(i = 0;i < n;i++)
cout<<a[i]<<" ";
return 0;
}