RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
문제 KOI00196

XCorr

설명

길이가 동일한 수열 \(X=(x_0, x_1, \cdots, x_{n-1})\)\(Y=(y_0, y_1, \cdots, y_{n-1})\)가 있다.

이 두 수열의 각 원소는 음이 아닌 정수이다. 다음은 \(n=5\)인 경우의 한 예이다.

[\(X=(1{,}0{,}0{,}0{,}1)\)]

[\(Y=(0{,}5{,}2{,}0{,}1)\)]

임의의 정수 \(t\)가 주어졌을 때 \(XCorr(t)\)는 다음과 같이 정의된다.

[XCorr(t)=\displaystyle\$sum_{i=0}^{n-1}{x_iy_{i$+t}}]

(\(i<0\)이거나 \(i\geq n\)이면 \(x_\)i=y_i=0으로 간주한다.)

예를 들어 \(t\)\(0, 1, -1\)일 때, \(XCorr(t)\)값은 다음과 같이 계산된다.

[\(XCorr(0) = x_0y_0\) + x_1y_1 + \dots + \(x_{n-1}y_{n-1}\)]

[\(XCorr(1) = x_0y_1\) + x_1y_2 + \dots + \(x_{n-1}\)y_n]

회색 칸에 들어있는 부분은 계산결과에 영향을 주지 않음에 주의하라. \(y_0\)는 계산식에 포함되지 않고, \(x_{n-1}\)은 곱해지는 \(y_\)n=0 이므로 계산 결과에 영향을 주지 않는다. 따라서 예시 수열 \(X\)\(Y\)에서 \(XCorr(1)\)은 다음과 같이 계산할 수 있다.

[1\times5+0\times2+0\times0+0\$times1=5$]

[\(XCorr(-1) = x_0y_{-1}\) + x_1y_0 + \dots + \(x_{n-1}y_{n-2}\)]

임의의 \(t\)값의 범위 \((a \le t \le b)\)에 대해 \(XCorr(t)\)를 모두 구해서 더한 값 \(S(a,b)\)는 다음과 같이 정의된다.

[S(a,b)=\displaystyle\sum_{a \le t \le b}{XCorr(t)}]

수열 \(X\),\(Y\)\(t\)의 범위 \(a\), \(b\)가 주어졌을 때 \(S(a,b)\)를 구하는 프로그램을 작성하시오.

※ 이 문제의 채점 데이터는 공개된 공식 데이터가 없어 재구성한 것입니다. 문제 지문은 원본(정보올림피아드 기출)을 따릅니다.

제약
입력 형식

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 수열 \(X\)에서 0이 아닌 정수의 개수 \(N\)이 주어진다.(수열의 길이 \(n\)이 아님). 다음 \(N\)개의 줄에는 수열 \(X\)의 각 양의 정수 \(x_i\)에 대해 인덱스 \(i\)\(x_i\) 값이 인덱스의 오름차순으로 주어진다. 다음 줄부터는 수열 \(Y\)\(X\)와 동일한 방식으로 주어진다. (\(Y\)에서 0이 아닌 정수의 개수 \(M\)이 주어지고 다음 \(M\)개의 줄에는 수열 \(Y\)의 각 양의 정수 \(y_i\)에 대해 인덱스 \(i\)\(y_i\) 값이 인덱스의 오름차순으로 주어진다.) 다음 줄에는 \(t\)의 범위의 최솟값인 정수 \(a\)가 주어지고, 그 다음 줄에는 \(t\)의 범위의 최댓값인 정수 \(b\) (\(a \le b\))가 주어진다.

출력 형식

표준 출력으로 \(S(a,b)=\displaystyle\sum_{a \leq t \leq b}{XCorr(t)}\) 값을 정수로 출력하라.

예제 1
입력
3
0 1
1 1
2 1
3
0 1
1 2
2 3
-1
1
출력
14
예제 2
입력
3
0 1
4 4
9 5
3
1 3
2 7
10 7
-2
2
출력
73
문제 정보

생성자가 기록되지 않았습니다.

출처 올림피아드 > 한국정보올림피아드 > KOI 2018 > 2차 대회 > 고등부 1번

평가 및 의견

XCorr

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

XCorr

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8