数列极差问题
来源:互联网 发布:神州鹰软件 编辑:程序博客网 时间:2024/06/08 07:27
在黑板上写了N个正整数组成的一个数列,进行如下操作: 每次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,如此下去直至黑板上 剩下一个数,在所有按这种操作方式最后得到的数中,最大的为max,最小的为min, 则该数列的极差定义为M=max-min。
请你编程,对于给定的数列,计算极差。
输入
输入包含多个测试集。每个测试集的第一个数N表示 正整数序列长度(0<=N<=50000),随后是N个正整数。N为0表示输入结束。
输出每个结果一行
输入样例31230
输出样例
2
水题直接贴代码:
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>int A[5001], B[5001];int cmp(const void *a, const void *b){return *(int *)a - *(int *)b;}int ReturnMin(int *Arr, int n){int a, b;while (n > 2){qsort(Arr, n, sizeof(Arr[0]), cmp);a = Arr[n - 1];b = Arr[n - 2];Arr[n - 2] = a * b + 1;Arr[n - 1] = 0;n--;}return Arr[0] * Arr[1] + 1;}int ReturnMax(int *Arr, int n){int a, b, j = 0;while (j < n - 2){qsort(Arr, n, sizeof(Arr[0]), cmp);a = Arr[j];b = Arr[j + 1];Arr[j + 1] = a * b + 1;Arr[j] = 0;j++;}return Arr[n - 2] * Arr[n - 1] + 1;}int main(){memset(A, 0, sizeof(A));memset(B, 0, sizeof(B));int i, n;while (scanf("%d", &n) != EOF && n != 0){for (i = 0; i<n; i++){scanf("%d", &B[i]);A[i] = B[i];}printf("%d\n", ReturnMax(A, n) - ReturnMin(B, n));}return 0;}
0 0
- HOJ1062 数列极差问题
- [hoj]数列极差问题
- 数列极差问题
- 数列极差问题
- 数列极差问题
- 数列极差问题
- Hoj 1062 数列极差问题
- 贪心法_数列极差问题
- 贪心算法-数列极差问题-JAVA
- 数列的极差问题 贪心法
- 数列极差问题(贪心) 求数据(一直Wrong)
- 贪心算法-数列极差问题(对前篇文章的修改)
- 数列极差-贪心算法
- MIPS+贪心 数列极差
- 极差问题
- 数列极差和大数模板
- O(n) 方法求数列极差
- 贪心算法基础(一)——数列极差
- 设计模式------观察者模式(ObserverPattern)和委托事件
- Maven常用命令
- HDF/NC/GRIB 数据浏览利器 panoply软件分享
- 解决数据库连接池连接mysql时,每隔8小时mysql自动断开所有连接的问题
- CSS中水平居中的inline-height 和 vertical-align:middle;
- 数列极差问题
- CryENGINE3系列总结教程之UI/HUD(二)Flash资源导入CE3
- VS2015配置Android开发环境
- 第一周------部分笔记
- huffman树的分析
- UVa 11039 - Building Designing
- OGG中Time Since Chkpt状态为UNKNOWN解决方法
- 7、OC 形参个数可变的方法
- nyoj 111 分数加减法