Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
134792 | mairuisheng | 数列极差问题 | C++ | 通过 | 100 | 0 MS | 256 KB | 762 | 2024-03-02 18:27:58 |
#include<bits/stdc++.h> using namespace std; priority_queue<long long> qmax; priority_queue<long long,vector<long long>, greater<long long> > qmin; long long n,a[50005],i,temp,maxx,minn; int main() { while(1) { scanf("%lld",&n); if(n<=0) { return 0; } while(!qmax.empty()) { qmax.pop(); } while(!qmin.empty()) { qmin.pop(); } maxx=0; minn=0; for(i=1;i<=n;++i) scanf("%lld",&temp),qmax.push(temp),qmin.push(temp); for(i=1;i<n;++i) { maxx=qmax.top(); qmax.pop(); maxx*=qmax.top(); qmax.pop(); qmax.push(maxx+1); minn=qmin.top(); qmin.pop(); minn*=qmin.top(); qmin.pop(); qmin.push(minn+1); } printf("%lld\n",qmin.top()-qmax.top()); } return 0; }