반응형
출처: SWEA
Input
2
4
1 6 3 7 4 5 2
2
3 1 2
Output
#1 4
#2 2
#include<iostream>
#include<cstdio>
using namespace std;
int n, arr[200000];
bool cmp(int x, int mid) {
return x >= mid;
}
bool judgeUpDown(int mid) {
for (register int i = 1; i <= n - 1; ++i) {
if (cmp(arr[n - i + 1], mid) == cmp(arr[n - i], mid)) return cmp(arr[n - i], mid);
if (cmp(arr[n + i - 1], mid) == cmp(arr[n + i], mid)) return cmp(arr[n + i], mid);
}
return cmp(arr[1], mid);
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int testCase; cin >> testCase;
for (int tc = 1; tc <= testCase; ++tc) {
cin >> n;
for (int i = 1; i <= 2 * n - 1; ++i)
cin >> arr[i];
int left = 1, right = 2 * n - 1, answer = 1;
while (left <= right){
int mid = (left + right) >> 1;
if (judgeUpDown(mid)) {
answer = mid;
left = mid + 1;
}
else right = mid - 1;
}
// 정답 출력
printf("#%d %d\n", tc, answer);
}
}
반응형
'PS 문제 풀이 > SWEA' 카테고리의 다른 글
[SWEA] 9092 마라톤 (0) | 2021.02.24 |
---|---|
[SWEA] 5684 운동 (0) | 2021.02.24 |
[SWEA] 5642 합 (0) | 2021.02.24 |
[SWEA] 8016 홀수 피라미드 (0) | 2021.02.24 |
[SWEA] 8822 홀수 중간값 피라미드 1 (0) | 2021.02.24 |
댓글