Submission #2549364
Source Code Expand
#include <bits/stdc++.h>
#define GET_MACRO(_1,_2,_3,_4,_5,_6,NAME,...) NAME
#define pr(...) cerr<< GET_MACRO(__VA_ARGS__,pr6,pr5,pr4,pr3,pr2,pr1)(__VA_ARGS__) <<endl
#define pr1(a) (#a)<<"="<<(a)<<" "
#define pr2(a,b) pr1(a)<<pr1(b)
#define pr3(a,b,c) pr1(a)<<pr2(b,c)
#define pr4(a,b,c,d) pr1(a)<<pr3(b,c,d)
#define pr5(a,b,c,d,e) pr1(a)<<pr4(b,c,d,e)
#define pr6(a,b,c,d,e,f) pr1(a)<<pr5(b,c,d,e,f)
#define pr7(a,b,c,d,e,f,g) pr1(a)<<pr6(b,c,d,e,f,g)
#define pr8(a,b,c,d,e,f,g,h) pr1(a)<<pr7(b,c,d,e,f,g,h)
using namespace std;
using Int = long long;
using ll = long long;
using Double = long double;
const Int INF = 1LL<<55;
const Int mod = (1e9)+7;
using P = pair<Int,Int>;
using T = tuple<Int,Int,Int>;
const Double EPS = 1e-8;
const Double PI = 6.0 * asin((Double)0.5);
template<class T> T Max(T &a,T b){return a=max(a,b);}
template<class T> T Min(T &a,T b){return a=min(a,b);}
ostream& operator<<(ostream& o,P p){return o<<"("<<p.first<<","<<p.second<<")";}
ostream& operator<<(ostream& o,T t){return o<<"("<<get<0>(t)<<","<<get<1>(t)<<","<<get<2>(t)<<")";}
istream& operator>>(istream& i,P &p){return i>>p.first>>p.second;}
ostream& operator<<(ostream& o,vector<auto> &a){Int i=0;for(auto t:a)o<<(i++?" ":"")<<t;return o;}
istream& operator>>(istream& i,vector<auto> &a){for(auto &t:a)i>>t;return i;}
void prArr(auto a,string s=" "){Int i=0;for(auto t:a)cout<<(i++?s:"")<<t;cout<<endl;}
Int sim(vector<Int> A){
Int n = A.size();
for(Int i=0;i<n;i++) assert(A[i] == 0 || A[i] == 1);
cout<<A<<endl;
while(A.size() != 1){
n = A.size();
vector<Int> nA;
for(Int i=0;i<n-2;i++){
vector<Int> a = {A[i],A[i+1],A[i+2]};
sort(a.begin(), a.end());
nA.push_back(a[1]);
}
A = nA;
cout<<A<<endl;
}
cout<<A<<endl;
return A[0];
}
signed main(){
cin.tie(0);
ios_base::sync_with_stdio(0);
cout << fixed << setprecision(12);
Int n;
cin>>n;
n = 2 * n - 1;
vector<Int> A(n);
cin>>A;
auto getDis = [&](const vector<Int> &X, Int num){
Int res = INF;
Int n = X.size();
for(Int i=0;i<n-1;i++) {
if(X[i] == num && X[i+1] == num) Min(res, abs(n/2 - i));
if(X[i] == num && X[i+1] == num) Min(res, abs(n/2 - i+1));
}
return res;
};
auto check=[&](Int x){
vector<Int> X(n);
for(Int i=0;i<n;i++) X[i] = A[i] >= x;
{
Int flag = 1;
for(Int i=0;i<n-1;i++) flag &= X[i] != X[i+1];
if(flag) return X[0];
}
Int one = getDis(X, 1);
Int zero = getDis(X, 0);
assert(one != zero);
return (Int)(one < zero);
};
Int L = 1, R = n;
while(L+1 < R){
Int M = (L+R)/2;
check(M)? L = M: R = M;
}
Int ans = L;
cout<<ans<<endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
D - Median Pyramid Hard |
User |
haji |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
2804 Byte |
Status |
WA |
Exec Time |
65 ms |
Memory |
3436 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 1300 |
Status |
|
|
Set Name |
Test Cases |
Sample |
0_00.txt, 0_01.txt |
All |
0_00.txt, 0_01.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt, 1_43.txt, 1_44.txt, 1_45.txt, 1_46.txt, 1_47.txt, 1_48.txt, 1_49.txt, 1_50.txt, 1_51.txt, 1_52.txt, 1_53.txt, 1_54.txt |
Case Name |
Status |
Exec Time |
Memory |
0_00.txt |
AC |
1 ms |
256 KB |
0_01.txt |
AC |
1 ms |
256 KB |
1_00.txt |
AC |
1 ms |
256 KB |
1_01.txt |
AC |
1 ms |
256 KB |
1_02.txt |
AC |
1 ms |
256 KB |
1_03.txt |
WA |
37 ms |
3428 KB |
1_04.txt |
WA |
37 ms |
3428 KB |
1_05.txt |
AC |
42 ms |
3428 KB |
1_06.txt |
AC |
42 ms |
3428 KB |
1_07.txt |
AC |
41 ms |
3428 KB |
1_08.txt |
AC |
41 ms |
3428 KB |
1_09.txt |
WA |
37 ms |
3428 KB |
1_10.txt |
WA |
37 ms |
3428 KB |
1_11.txt |
AC |
42 ms |
3428 KB |
1_12.txt |
AC |
41 ms |
3428 KB |
1_13.txt |
AC |
41 ms |
3428 KB |
1_14.txt |
AC |
41 ms |
3428 KB |
1_15.txt |
AC |
43 ms |
3436 KB |
1_16.txt |
WA |
54 ms |
3328 KB |
1_17.txt |
AC |
53 ms |
3428 KB |
1_18.txt |
AC |
54 ms |
3328 KB |
1_19.txt |
AC |
42 ms |
3328 KB |
1_20.txt |
AC |
42 ms |
3328 KB |
1_21.txt |
AC |
44 ms |
3428 KB |
1_22.txt |
AC |
44 ms |
3328 KB |
1_23.txt |
AC |
44 ms |
3328 KB |
1_24.txt |
WA |
45 ms |
3328 KB |
1_25.txt |
AC |
52 ms |
3432 KB |
1_26.txt |
WA |
45 ms |
3348 KB |
1_27.txt |
AC |
54 ms |
3328 KB |
1_28.txt |
WA |
46 ms |
3328 KB |
1_29.txt |
AC |
41 ms |
3436 KB |
1_30.txt |
AC |
41 ms |
3328 KB |
1_31.txt |
WA |
44 ms |
3336 KB |
1_32.txt |
AC |
50 ms |
3432 KB |
1_33.txt |
AC |
41 ms |
3428 KB |
1_34.txt |
WA |
43 ms |
3340 KB |
1_35.txt |
AC |
47 ms |
3328 KB |
1_36.txt |
WA |
43 ms |
3236 KB |
1_37.txt |
AC |
49 ms |
3328 KB |
1_38.txt |
AC |
45 ms |
3428 KB |
1_39.txt |
WA |
48 ms |
3428 KB |
1_40.txt |
WA |
51 ms |
3328 KB |
1_41.txt |
AC |
45 ms |
3428 KB |
1_42.txt |
AC |
46 ms |
3328 KB |
1_43.txt |
AC |
47 ms |
3428 KB |
1_44.txt |
WA |
51 ms |
3432 KB |
1_45.txt |
AC |
44 ms |
3436 KB |
1_46.txt |
AC |
47 ms |
3432 KB |
1_47.txt |
AC |
52 ms |
3328 KB |
1_48.txt |
AC |
65 ms |
3428 KB |
1_49.txt |
AC |
43 ms |
3328 KB |
1_50.txt |
WA |
63 ms |
3328 KB |
1_51.txt |
AC |
56 ms |
3328 KB |
1_52.txt |
AC |
58 ms |
3432 KB |
1_53.txt |
WA |
62 ms |
3328 KB |
1_54.txt |
AC |
64 ms |
3328 KB |