지우너
[코드트리] 구간 외 최대 숫자 C++ 본문
문제
코드
#include <iostream>
#define MAX_N 100000
using namespace std;
int num[MAX_N];
int leftMax[MAX_N];
int rightMax[MAX_N];
int main() {
int n, q;
cin >> n >> q;
for(int i=0; i<n; ++i){
cin >> num[i];
}
// fill left
leftMax[0]=num[0];
for(int i=1; i<n; ++i){
leftMax[i]=max(leftMax[i-1], num[i]);
}
// fill right
rightMax[n-1]=num[n-1];
for(int i=n-2; i>=0; --i){
rightMax[i]=max(rightMax[i+1], num[i]);
}
// q개의 질의
while(q--){
int a, b;
cin >> a >> b;
a--, b--; // 0-based
cout << max(leftMax[a-1], rightMax[b+1]) <<'\n';
}
return 0;
}
'Problem Solving' 카테고리의 다른 글
[코드트리] 최소 에너지 비용 (0) | 2024.08.19 |
---|---|
[코드트리]구간 크기의 합 C++ (0) | 2024.08.18 |
[코드트리] 씨 오 더블유 C++ (0) | 2024.08.16 |
[코드트리] 인접하지 않은 3개의 숫자 C++ (0) | 2024.08.16 |
[코드트리] 마라톤 중간에 택시타기 C++ (0) | 2024.08.15 |