#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int N, a, score;
vector <int> v;
priority_queue <int> q1, q2;
cin >> N;
int p, k, wynik = 0, licz = 0;
for(int i = 0; i < N; i++) {
cin >> a;
if(a == N)
p = i;
v.push_back(a);
}
for (int i = 0; i < N; i++) {
while (!q1.empty())
q1.pop();
while (!q2.empty())
q2.pop();
for (int z = i; z < N; z++) {
a = v[z];
if (q2.empty() || a > -q2.top()){
q2.push(-v[z]);
if (q2.size() > q1.size() + 1) {
a = q2.top();
q2.pop();
q1.push(-a);
}
}
else {
q1.push(v[z]);
if (q1.size() > q2.size()) {
a = q1.top();
q1.pop();
q2.push(-a);
}
}
score = q1.size() + q2.size();
if (q1.size() == q2.size())
score += q1.top() - q2.top();
else
score += 2 * -q2.top();
if (score > wynik){
wynik = score;
licz = 0;
}
if (score == wynik)
licz++;
}
}
cout << wynik << " " << licz << "\n";
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int N, a, score; vector <int> v; priority_queue <int> q1, q2; cin >> N; int p, k, wynik = 0, licz = 0; for(int i = 0; i < N; i++) { cin >> a; if(a == N) p = i; v.push_back(a); } for (int i = 0; i < N; i++) { while (!q1.empty()) q1.pop(); while (!q2.empty()) q2.pop(); for (int z = i; z < N; z++) { a = v[z]; if (q2.empty() || a > -q2.top()){ q2.push(-v[z]); if (q2.size() > q1.size() + 1) { a = q2.top(); q2.pop(); q1.push(-a); } } else { q1.push(v[z]); if (q1.size() > q2.size()) { a = q1.top(); q1.pop(); q2.push(-a); } } score = q1.size() + q2.size(); if (q1.size() == q2.size()) score += q1.top() - q2.top(); else score += 2 * -q2.top(); if (score > wynik){ wynik = score; licz = 0; } if (score == wynik) licz++; } } cout << wynik << " " << licz << "\n"; } |
English