做盗版影视网站违法吗公司网站建设平台
题目描述
佳佳的老师在黑板上写了一个由 n个正整数组成的数列,要求佳佳进行如下操作:每次擦去其中的两个数a 和b ,然后在数列中加入一个数a*b+1 ,如此下去直至黑板上剩下一个数为止,在所有按这种操作方式最后得到的数中,最大的为 max,最小的为 min, 则该数列的极差定义为M=max-min 。
由于佳佳忙于准备期末考试,现请你帮助他,对于给定的数列,计算出相应的极差 。
输入格式
第一行为一个正整数n 表示正整数序列的长度;
在接下来的 n行中,每行输入一个正整数。
接下来的一行有一个 0,表示数据结束。
输出格式
输出只有一行,为相应的极差 。
样例
样例输入
复制3
1
2
3
0
样例输出
复制2
_____________________________________________________________________________
写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
____________________________________________________________________________
每次排序后算最小的数,最后结果为max;
每次排序后算最大的数,最后结果为min;
#include <bits/stdc++.h>
using namespace std;
int n;
int a[1000005];
int b[1000005];
bool cmp1(int x,int y){return x<y;
}
bool cmp2(int x,int y){return x>y;
}
int main(){int n;cin>>n;for(int i=1;i<=n+1;i++){cin>>a[i];b[i]=a[i];if(a[i]==0)break;}for(int i=1;i<n;i++){sort(a+i,a+1+n,cmp1);sort(b+i,b+1+n,cmp2);a[i+1]=a[i]*a[i+1]+1;b[i+1]=b[i]*b[i+1]+1;}cout<<a[n]-b[n];
}