| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 5 초 | 2048 MB | 88 | 21 | 21 | 26.582% |
지후는 정수로 이루어진 길이 $N$의 배열 $A,ドル $B$를 가지고 있다. 모든 정수 0ドル \le i \le N-1$에 대해 $A[i] \le B[i]$를 만족한다.
다음 조건을 모두 만족하는 $[l, r]$을 멋진 구간이라고 정의한다:
지후는 멋진 구간이 얼마나 있는지 궁금해졌다.
구체적으로, 지후의 궁금증은 0ドル$부터 $Q-1$까지의 번호가 붙은 $Q$개의 질문으로 구성되어 있으며, 이는 정수로 이루어진 길이 $Q$의 배열 $L1,ドル $R1,ドル $L2,ドル $R2$로 표현된다.
$j$ (0ドル \le j \le Q-1$)번 질문은 다음과 같다: $L1[j] \le l \le R1[j]$와 $L2[j] \le r \le R2[j]$를 모두 만족하는 멋진 구간 $[l, r]$은 몇 개인가?
여러분은 지후의 질문들에 답하는 프로그램을 작성해야 한다.
여러분은 아래 함수를 구현해야 한다.
std::vector<long long> maxsum(std::vector<int> A, std::vector<int> B, std::vector<int> L1, std::vector<int> R1, std::vector<int> L2, std::vector<int> R2)
$N=3,ドル $Q=3,ドル $A=[-1, -1, -1],ドル $B=[2, -1, 2],ドル $L1=[0, 0, 1],ドル $R1=[2, 0, 2],ドル $L2=[0, 0, 0],ドル $R2=[2, 2, 1]$인 경우를 생각해 보자.
그레이더는 다음 함수를 호출한다.
maxsum([-1, -1, -1], [2, -1, 2], [0, 0, 1], [2, 0, 2], [0, 0, 0], [2, 2, 1])
$[0, 0]$은 멋진 구간이다. $C = [1, -1, 0]$일 때, $C[0 \ldots 0]$이 $C$의 최대 합 부분 배열이기 때문이다.
$[0, 1]$은 멋진 구간이 아니다. $C[1]=-1$이므로, 어떤 $C$를 잡아도 $C[0] > C[0] + C[1]$이기 때문이다.
비슷한 방식으로 멋진 구간은 $[0, 0],ドル $[0, 2],ドル $[1, 1],ドル $[2, 2]$ 밖에 없다는 것을 증명할 수 있다.
따라서, 함수는 $[4, 2, 1]$을 반환해야 한다.
Sample grader는 아래와 같은 형식으로 입력을 받는다.
Sample grader는 다음을 출력한다.
maxsum의 반환값을 $S$라 할 때, $S[0]$ $S[1]$ $\cdots$ $S[Q-1]$Sample grader는 실제 채점에서 사용하는 그레이더와 다를 수 있음에 유의하라.
Olympiad > 국제정보올림피아드 대표학생 선발고사 > 2025 > 2차 선발고사 2번
C++17, C++20, C++23, C++26, C++17 (Clang), C++20 (Clang)