1906: 【入门】马里奥花银币

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:46 解决:13

题目描述

马里奥有很多银币,他决定去集市逛逛,他想把自己金额最小的银币全部花光,金额最大的银币花掉1个,请你编程帮助马里奥计算一下,如果按照他的计划去消费,他花掉了多少钱,还剩多少钱?

比如:假设马里奥存有的银币金额分别为8 5 2 8 2 4,那么按照他的计划消费之后,他会花掉1个金额为8的银币,2个金额为2的银币;因此,他总共花掉了金额为8+2+2=12的银币,还剩金额为17的银币。

输入

第一行是一个整数n代表马里奥有n个银币(n<=1000

第二行有n个整数,用空格隔开,代表马里奥每个银币的金额

输出

第一行输出马里奥花掉的银币金额

第二行输出马里奥还剩的银币金额

样例输入 复制

6
8 2 7 8 2 4

样例输出 复制

12
19

提示

n=int(input())
ls=list(map(int,input().split()))
tot=sum(ls)
minV=min(ls)
maxV=max(ls)
ans1=0
ans2=0
for i in range(n):
    if ls[i]==minV:
        ans1+=ls[i]
ans1+=maxV
ans2=tot-ans1
print(ans1)
print(ans2)

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a[1010],n,i,maxx,minx,c = 0,s = 0;
	cin>>n;
	for(i = 0;i < n;i++){
		cin>>a[i];
		s = s + 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] == minx)
			c++;
	}
	cout<<maxx + c * minx<<endl;
	cout<<s - (maxx + c * minx)<<endl;
	return 0;
}