Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
133621 | 廖悦扬 | 数列极差问题 | C++ | 通过 | 100 | 0 MS | 252 KB | 705 | 2024-03-02 08:38:26 |
#include <bits/stdc++.h> #define int long long using namespace std; int n; priority_queue<int> que1; priority_queue<int> que2; signed main() { while (~scanf("%lld", &n) && n) { while (!que1.empty()) que1.pop(); while (!que2.empty()) que2.pop(); for (int i=1; i<=n; i++) { int x; scanf("%lld", &x); que1.push(x); que2.push(-x); } while (que1.size() > 1) { int a = que1.top(); que1.pop(); int b = que1.top(); que1.pop(); que1.push(a*b+1); } while (que2.size() > 1) { int a = -que2.top(); que2.pop(); int b = -que2.top(); que2.pop(); que2.push(-(a*b+1)); } printf("%lld\n", abs(que1.top()-(-que2.top()))); } return 0; }