蓝桥杯C语言本科B组预赛试题
2013年蓝桥杯软件大赛预赛C本科B组试题

第四届“蓝桥杯”全国软件专业人才设计与创业大赛选拔赛C/C++本科B组考生须知:●考试开始后,选手首先下载题目到本机不被还原的盘符,并使用考场现场公布的解压密码解压试题。
●考试时间为9:00-13:00,共4个小时。
13点整时间截止时,将无法提交答案。
选手因考试结束不能提交答案的,责任由选手自负。
●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。
●选手可浏览自己已经提交的答案。
●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
●选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。
●选手必须通过浏览器方式提交自己的答案。
选手在其它位置的作答或其它方式提交的答案无效。
●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。
结果填空题:要求选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把结果填空的答案直接通过网页提交即可,不要书写多余的内容。
代码填空题:要求选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不超过一条语句(即中间不能出现分号)。
把代码填空的答案(仅填空处的答案,不包括题面已存在的代码或符号)直接通过网页提交即可,不要书写多余的内容。
注意选择自己使用的编译环境。
使用ANSI C/ANSI C++ 标准,不要依赖操作系统或编译器提供的特殊函数。
程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库,但不能使用MFC或ATL等非ANSI C++标准的类库。
蓝桥杯b组c语言决赛试题及答案

蓝桥杯b组c语言决赛试题及答案蓝桥杯B组C语言决赛试题及答案一、选择题1. 下列哪个选项是C语言中的关键字?A. intB. StringC. varD. float答案:A2. 在C语言中,哪个函数用于计算并返回字符串的长度?A. strlenB. lengthC. sizeD. count答案:A3. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D二、填空题1. 在C语言中,表示逻辑“与”的运算符是______。
答案:&&2. 若有定义 `int a = 5;`,则表达式 `a++` 的值是______。
答案:53. 函数 `printf` 的返回值类型是______。
答案:int三、编程题1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```答案:程序正确计算了100以内所有偶数的和,并输出结果。
2. 编写一个C语言函数,实现字符串的反转。
```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```答案:函数 `reverseString` 正确地反转了输入的字符串,并在 `main` 函数中进行了测试。
蓝桥杯历年c语言试题及答案

蓝桥杯历年c语言试题及答案蓝桥杯历年C语言试题及答案1. 题目一:数组反转要求:编写一个函数,实现对整数数组的反转。
输入:一个整数数组及其长度。
输出:反转后的数组。
答案:```cvoid reverseArray(int arr[], int n) {int temp;for (int i = 0; i < n / 2; i++) {temp = arr[i];arr[i] = arr[n - i - 1];arr[n - i - 1] = temp;}}```2. 题目二:寻找最大数要求:给定一个整数数组,找出其中的最大数。
输入:一个整数数组及其长度。
输出:数组中的最大数。
答案:```cint findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}return max;}```3. 题目三:计算阶乘要求:编写一个函数,计算给定非负整数的阶乘。
输入:一个非负整数。
输出:该整数的阶乘。
答案:```clong long factorial(int n) {if (n == 0) return 1;long long fact = 1;for (int i = 1; i <= n; i++) {fact *= i;}return fact;}```4. 题目四:字符串反转要求:编写一个函数,实现对字符串的反转。
输入:一个字符串。
输出:反转后的字符串。
答案:```cvoid reverseString(char str[]) {int length = strlen(str);char temp;for (int i = 0; i < length / 2; i++) {temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```5. 题目五:判断素数要求:编写一个函数,判断给定的整数是否为素数。
历年蓝桥杯省赛B组真题试题

for(j = 0 ; j < 4 ; j ++) flag[i][j] = 1;
flag[0][0] = 0; flag[2][3] = 0; }
void Solve() {
int dir[8][2] = { 0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1}; int book = true; for(int i = 0 ; i < 3 ; i ++) {
int main() {
int i; int a[] = {5,13,6,24,2,8,19,27,6,12,1,17}; int N = 12;
quicksort(a, 0, N -1);
for(i=0; i<N; i++) printf("%d ", a[i]); printf("\n");
return 0; }
num[n]=0;
}
}
}
int main() {
memset(num,0,sizeof(num)); memset(visit,0,sizeof(visit)); dfs(1); cout<<sum; return 0; }
4 / 19
(4) 快速排序
历年蓝桥杯省赛 B 组真题试题
排序在各种场合经常被用到。 快速排序是十分常用的高效率的算法。
if(!visit[i]) {
visit[i] = true; mpt[x][y] = i; dfs(index+1); visit[i] = false; } } } else { dfs(index+1); } } int main() { init(); dfs(0); printf("%d\n",ans); return 0; }
蓝桥杯C语言本科B组预赛试题审批稿

蓝桥杯C语言本科B组预赛试题YKK standardization office【 YKK5AB- YKK08- YKK2C- YKK18】2014蓝桥杯C/C++语言本科B组预赛试题(完整)1.啤酒和饮料啤酒每罐元,饮料每罐元。
小明买了若干啤酒和饮料,一共花了元。
我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。
注意:答案是一个整数。
请通过浏览器提交答案。
不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。
2.切面条一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。
不要填写任何多余的内容。
3.李白打酒话说大诗人李白,一生好饮。
幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。
他边走边唱:无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。
则:babaabbabbabbbb就是合理的次序。
像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
注意:通过浏览器提交答案。
答案是个整数。
不要书写任何多余的内容。
4.史丰收速算史丰收速算法的革命性贡献是:从高位算起,预测进位。
不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。
其中,乘以7是最复杂的,就以它为例。
因为,1/7是个循环小数:...,如果多位数超过 142857...,就要进1同理,2/7,3/7, ... 6/7 也都是类似的循环小数,多位数超过 n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。
乘以7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。
蓝桥杯第十一届CC++B组省赛真题整理

蓝桥杯第⼗⼀届CC++B组省赛真题整理蓝桥杯第⼗⼀届C/C++ B组省赛真题整理试题A: 门牌制作解法:模拟【问题描述】⼩蓝要为⼀条街的住户制作门牌号。
这条街⼀共有2020位住户,门牌号从1到2020编号。
⼩蓝制作门牌的⽅法是先制作О到9这⼏个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7。
请问要制作所有的1到2020号门牌,总共需要多少个字符2?【答案提交】这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
#include<iostream>using namespace std;int ans;void count(int x){while(x){if(x%10==2) ans++;x/=10;}}int main(){for(int i=1;i<=2020;i++) count(i);cout<<ans<<endl;return 0;}答案:624试题B: 既约分数解法:枚举+gcd【问题描述】如果⼀个分数的分⼦和分母的最⼤公约数是1,这个分数称为既约分数。
例如,3/4,5/2,1/8,7/1都是既约分数。
请问,有多少个既约分数,分⼦和分母都是1到2020之间的整数(包括1和2020)?【答案提交】这是⼀道结果填空题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
#include<iostream>using namespace std;int ans;int gcd(int a,int b){return b==0?a:gcd(b,a%b);}int main(){for(int i=1;i<=2020;i++)for(int j=1;j<=2020;j++)if(gcd(i,j)==1) ans++;cout<<ans<<endl;return 0;}答案:2481215试题C: 蛇形填数解法:模拟【问题描述】如下图所⽰,⼩明⽤从1开始的正整数“蛇形”填充⽆限⼤的矩阵。
蓝桥杯b组c语言历年题目

蓝桥杯b组c语言历年题目全文共四篇示例,供读者参考第一篇示例:蓝桥杯是中国面向大学生的计算机科学与编程竞赛,设立了不同级别的组别和不同的题目形式,其中B组是C语言编程的比赛,考察参赛选手对于C语言编程的理解和应用能力。
参加B组比赛需要具备一定的编程基础和C语言知识,适合有一定编程经验的大学生参与。
历年来,蓝桥杯B组的C语言题目围绕着各种不同的主题展开,涵盖了计算机科学与编程的各个方面,从基础的数据结构和算法到高级的计算机网络和操作系统等内容,题目设计丰富多样,旨在考察参赛选手的编程能力和创新思维。
以下是部分历年蓝桥杯B组的C语言题目:1. 编写一个程序,实现一个简单的计算器功能,支持加减乘除运算,并能够处理输入错误的情况。
2. 设计一个程序,实现一个简单的俄罗斯方块游戏,要求具备显示界面和键盘控制功能。
3. 编程实现一个简单的网络聊天程序,要求实现客户端和服务器端的通信功能,支持实时消息传输。
4. 设计一个程序,模拟实现一个简单的操作系统,包括进程管理、文件系统和内存管理等功能。
5. 编写一个程序,实现一个简单的图形界面,包括按钮、文本框和标签等控件,能够响应用户的操作。
这些题目涵盖了C语言编程中的各个方面,要求选手具备良好的编程基础和解决问题的能力,能够独立完成编程任务并提供有效的解决方案。
蓝桥杯B组的C语言题目旨在培养参赛选手的编程能力和创新思维,帮助他们提升对计算机科学和编程的理解和实践能力。
参加蓝桥杯B组比赛不仅可以锻炼参赛选手的编程技能,还可以拓宽他们的视野,了解计算机科学与技术领域的最新动态和发展趋势。
通过参加蓝桥杯的比赛,参赛选手可以结识志同道合的朋友,与他们共同探讨问题,交流经验,共同进步。
第二篇示例:蓝桥杯是中国首个面向大学生的计算机程序设计和算法竞赛,有A、B、C、D四个组别,其中B组使用C语言进行比赛。
蓝桥杯B组的比赛题目涵盖了C语言的基础知识、算法和数据结构等方面,旨在考察参赛选手的编程能力和解决问题的能力。
蓝桥杯C语言本科B组预赛试题

2021蓝桥杯C/C++语言本科B组预赛试题〔完整〕1.啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。
小明买了假设干啤酒和饮料,一共花了82.3元。
我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。
注意:答案是一个整数。
请通过浏览器提交答案。
不要书写任何多余的内容〔例如:写了饮料的数量,添加说明文字等〕。
2.切面条一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。
不要填写任何多余的内容。
3.李白打酒话说大诗人李白,一生好饮。
幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。
他边走边唱:无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。
那么:babaabbabbabbbb就是合理的次序。
像这样的答案一共有多少呢?请你计算出所有可能方案的个数〔包含题目给出的〕。
注意:通过浏览器提交答案。
答案是个整数。
不要书写任何多余的内容。
4.史丰收速算史丰收速算法的革命性奉献是:从高位算起,预测进位。
不需要九九表,彻底颠覆了传统手算!速算的核心根底是:1位数乘以多位数的乘法。
其中,乘以7是最复杂的,就以它为例。
因为,1/7是个循环小数:0.142857...,如果多位数超过142857...,就要进1同理,2/7,3/7, ... 6/7 也都是类似的循环小数,多位数超过n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。
乘以7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。
乘以7 的进位规律是:满142857 (1)满285714 (2)满428571 (3)满571428 (4)满714285 (5)满857142... 进6请分析程序流程,填写划线局部缺少的代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蓝桥杯C语言本科B组预赛试题————————————————————————————————作者:————————————————————————————————日期:2014蓝桥杯C/C++语言本科B组预赛试题(完整)1.啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。
小明买了若干啤酒和饮料,一共花了82.3元。
我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。
注意:答案是一个整数。
请通过浏览器提交答案。
不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。
2.切面条一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。
不要填写任何多余的内容。
3.李白打酒话说大诗人李白,一生好饮。
幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。
他边走边唱:无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。
则:babaabbabbabbbb就是合理的次序。
像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
注意:通过浏览器提交答案。
答案是个整数。
不要书写任何多余的内容。
4.史丰收速算史丰收速算法的革命性贡献是:从高位算起,预测进位。
不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。
其中,乘以7是最复杂的,就以它为例。
因为,1/7是个循环小数:0.142857...,如果多位数超过142857...,就要进1同理,2/7,3/7, ...6/7 也都是类似的循环小数,多位数超过n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。
乘以7的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。
乘以7 的进位规律是:满142857...进1,满285714 (2)满428571... 进3,满571428... 进4,满714285... 进5,满857142... 进6请分析程序流程,填写划线部分缺少的代码。
//计算个位intge_wei(int a){if(a % 2 ==0)return (a * 2) % 10;elsereturn (a * 2+ 5)%10;}//计算进位intjin_wei(char* p){char* level[] = {"142857","285714","428571","571428","714285","857142"};char buf[7];buf[6]='\0';strncpy(buf,p,6);int i;for(i=5; i>=0; i--){int r= strcmp(level[i], buf);if(r<0) return i+1;while(r==0){p += 6;strncpy(buf,p,6);r = strcmp(level[i], buf);if(r<0) return i+1;______________________________;//填空}}return 0;}//多位数乘以7void f(char* s){inthead = jin_wei(s);if(head > 0) printf("%d", head);char* p= s;while(*p){int a=(*p-'0');int x = (ge_wei(a)+jin_wei(p+1)) %10;printf("%d",x);p++;}printf("\n");}intmain(){f("428571428571");f("34553834937543");return0;}注意:通过浏览器提交答案。
只填写缺少的内容,不要填写任何多余的内容(例如:说明性文字)5. 打印图形小明开动脑筋,编写了如下的程序,实现该图形的打印。
#defineN 70voidf(chara[][N],intrank, int row,int col) {if(rank==1){a[row][col] ='*';return;}int w = 1;int i;for(i=0;i<rank-1;i++) w*= 2;____________________________________________;f(a,rank-1, row+w/2,col);f(a, rank-1, row+w/2, col+w);}intmain(){chara[N][N];int i,j;for(i=0;i<N;i++)for(j=0;j<N;j++) a[i][j]= ' ';f(a,6,0,0);for(i=0; i<N;i++){for(j=0;j<N; j++) printf("%c",a[i][j]);printf("\n");}return 0;}请仔细分析程序逻辑,填写缺失代码部分。
通过浏览器提交答案。
注意不要填写题目中已有的代码。
也不要写任何多余内容(比如说明性的文字)6.奇怪的分式上小学的时候,小明经常自己发明新算法。
一次,老师出的题目是:1/4乘以8/5小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45(参见图1.png)老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼!对于分子、分母都是1~9 中的一位数的情况,还有哪些算式可以这样计算呢?请写出所有不同算式的个数(包括题中举例的)。
显然,交换分子分母后,例如:4/1乘以5/8 是满足要求的,这算做不同的算式。
但对于分子分母相同的情况,2/2乘以3/3 这样的类型太多了,不在计数之列!注意:答案是个整数(考虑对称性,肯定是偶数)。
请通过浏览器提交。
不要书写多余的内容。
7.六角填数如图【1.png】所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?请通过浏览器提交答案,不要填写多余的内容。
8. 蚂蚁感冒长100厘米的细长直杆子上有n只蚂蚁。
它们的头有的朝左,有的朝右。
每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。
当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。
这些蚂蚁中,有1只蚂蚁感冒了。
并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。
请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。
【数据格式】第一行输入一个整数n(1<n <50), 表示蚂蚁的总数。
接着的一行是n个用空格分开的整数Xi (-100 <Xi < 100), Xi的绝对值,表示蚂蚁离开杆子左边端点的距离。
正值表示头朝右,负值表示头朝左,数据中不会出现0值,也不会出现两只蚂蚁占用同一位置。
其中,第一个数据代表的蚂蚁感冒了。
要求输出1个整数,表示最后感冒蚂蚁的数目。
例如,输入:35 -28程序应输出:1再例如,输入:5-10 8 -20 12 25程序应输出:3资源约定:峰值内存消耗< 256MCPU消耗< 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:main函数需要返回0注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中#include <xxx>, 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
9. 地宫取宝X国王有一个地宫宝库。
是n x m 个格子的矩阵。
每个格子放一件宝贝。
每个宝贝贴着价值标签。
地宫的入口在左上角,出口在右下角。
小明被带到地宫的入口,国王要求他只能向右或向下行走。
走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。
当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。
请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝。
【数据格式】输入一行3个整数,用空格分开:n m k(1<=n,m<=50, 1<=k<=12)接下来有n行数据,每行有m 个整数Ci(0<=Ci<=12)代表这个格子上的宝物的价值要求输出一个整数,表示正好取k个宝贝的行动方案数。
该数字可能很大,输出它对1000000007 取模的结果。
例如,输入:2 2 21 22 1程序应该输出:2再例如,输入:23 21 2 32 1 5程序应该输出:14资源约定:峰值内存消耗< 256MCPU消耗< 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0注意: 只使用ANSI C/ANSIC++标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意:所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
10. 小朋友排队n个小朋友站成一排。
现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。
每个小朋友都有一个不高兴的程度。
开始的时候,所有小朋友的不高兴程度都是0。
如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。
当要求某个小朋友第k次交换时,他的不高兴程度增加k。
请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。
如果有两个小朋友身高一样,则他们谁站在谁前面是没有关系的。
【数据格式】输入的第一行包含一个整数n,表示小朋友的个数。
第二行包含n 个整数H1 H2 …Hn,分别表示每个小朋友的身高。
输出一行,包含一个整数,表示小朋友的不高兴程度和的最小值。
例如,输入:33 2 1程序应该输出:9【样例说明】首先交换身高为3和2的小朋友,再交换身高为3和1的小朋友,再交换身高为2和1的小朋友,每个小朋友的不高兴程度都是3,总和为9。