파일 업로드

동일한 합의 부분배열

profile
실행 시간 제한메모리 제한
3 초1024 MB
📃 해결할 문제

학생 찬호는 방에서 수학 문제를 풀고 있습니다.

이 문제에서는 길이가 NN (2N500,1015ai10152 \leq N \leq 500, -10^{15} \leq a_i \leq 10^{15})인 배열 aa이 주어집니다. 

이 배열에서 모든 N(N+1)2\frac{N(N+1)}{2}개의 연속한 부분 배열 합이 서로 다릅니다. 각 인덱스 i[1,N]i \in [1, N]에 대해, 찬호가 aia_i를 얼마나 최소한으로 변경해야 배열 aa의 두 다른 연속한 부분 배열의 합이 같아지는 지 계산해주세요.

'부분 배열의 합이 같다.'라는 것은 연속된 배열의 요소들을 더했을 때, 그 합계가 동일함을 의미합니다.

💻 입력

첫 번째 줄에는 NN이 주어집니다.

다음 줄에는 a1,,aNa_1, \dots, a_N (순서대로 배열 aa의 요소들)이 주어집니다.

🖨️ 출력

각 인덱스 i[1,N]i \in [1,N]에 대해 한 줄을 출력합니다.


💻 예제 입력 1
2
2 -3
🖨️ 예제 출력 1
2
3
💻 예제 입력 2
3
3 -10 4
🖨️ 예제 출력 2
1
6
1

💡 힌트

a1a_122만큼 줄이면 a1+a2=a2a_1+a_2=a_2가 됩니다. 마찬가지로, a2a_233만큼 늘리면 a1+a2=a1a_1+a_2=a_1이 됩니다.

 

예제 입력:

3
3 -10 4

예제 출력:

1
6
1

a1a_111만큼 늘리거나 a3a_311만큼 줄이면 a1=a3a_1=a_3이 됩니다. a2a_266만큼 늘리면 a1=a1+a2+a3a_1=a_1+a_2+a_3가 됩니다.

 

점수:

  • 입력 3: N40N \le 40
  • 입력 4: N80N \le 80
  • 입력 5-7: N200N \le 200
  • 입력 8-16: 추가 제약사항은 없습니다.

출처: USACO 2023 February Contest, Gold Problem 1. Equal Sum Subarrays