/// THE GAME #include <iostream> #include <algorithm> #include <vector> using namespace std; int wyliczMediane (const int a, const int b, const vector <int> &V) { // cerr << "Licze mediane (" << a << "," << b << "): "; vector <int> bruh; for (int i=a;i<=b;i++) bruh.push_back(V[i]); sort(bruh.begin(), bruh.end()); if ((b-a+1)%2 == 0) return (bruh[(b-a)/2]+bruh[(b-a+1)/2]); else return 2*bruh[(b-a)/2]; } int main () { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector <int> V(n+1); for (int i=1;i<=n;i++) cin >> V[i]; int maxx= -1; int iloscMaxx= 0; for (int a=1;a<=n;a++) for (int b=a;b<=n;b++) { int mediana= wyliczMediane(a, b, V); /// 2* mediana // cerr << " 2*mediana= " << mediana << endl; int iloscLiczb= b-a+1; if (maxx < iloscLiczb+mediana) { maxx= iloscLiczb+mediana; iloscMaxx= 1; } else if (maxx == iloscLiczb+mediana) iloscMaxx++; } cout << maxx << ' ' << iloscMaxx << '\n'; return 0; }
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 | /// THE GAME #include <iostream> #include <algorithm> #include <vector> using namespace std; int wyliczMediane (const int a, const int b, const vector <int> &V) { // cerr << "Licze mediane (" << a << "," << b << "): "; vector <int> bruh; for (int i=a;i<=b;i++) bruh.push_back(V[i]); sort(bruh.begin(), bruh.end()); if ((b-a+1)%2 == 0) return (bruh[(b-a)/2]+bruh[(b-a+1)/2]); else return 2*bruh[(b-a)/2]; } int main () { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector <int> V(n+1); for (int i=1;i<=n;i++) cin >> V[i]; int maxx= -1; int iloscMaxx= 0; for (int a=1;a<=n;a++) for (int b=a;b<=n;b++) { int mediana= wyliczMediane(a, b, V); /// 2* mediana // cerr << " 2*mediana= " << mediana << endl; int iloscLiczb= b-a+1; if (maxx < iloscLiczb+mediana) { maxx= iloscLiczb+mediana; iloscMaxx= 1; } else if (maxx == iloscLiczb+mediana) iloscMaxx++; } cout << maxx << ' ' << iloscMaxx << '\n'; return 0; } |