애드 혹, 수학
정수로 구성된 수열 𝐴1,𝐴2,⋯,𝐴𝑁이 주어진다. 우리는 이 수열에 아래 연산을 원하는 만큼 반복할 수 있다.
- 인접한 세 값을 1씩 증가시킨다.
이 연산을 최소한으로 사용해 수열의 홀수 번째 위치의 합과 짝수 번째 위치의 합을 같게 만들고자 한다. 최소 몇 번의 연산을 해야 홀수 번째 위치와 짝수 번째 위치의 합이 같아지는지 구하시오. 만약 홀수 번째 위치의 합과 짝수 번째 위치의 합을 같게 만들 수 없다면 -1을 출력한다.
첫째 줄에 수열의 길이 𝑁이 주어진다. (3≤𝑁≤100000)
둘째 줄에 길이가 𝑁인 수열 𝐴1,𝐴2,𝐴3,⋯,𝐴𝑁이 공백으로 구분되어 주어진다. (−100000≤𝐴𝑖≤100000)
홀수 번째 위치의 합과 짝수 번째 위치의 합을 같게 만들기 위한 최소 연산 수를 출력한다. 불가능하다면 -1을 출력한다.
코드
n = int(input())
arr = list(map(int, input().split()))
odd = 0
even = 0
for i in range(n):
if i%2 == 0:
even += arr[i]
else:
odd += arr[i]
if n == 3 and odd == even - 2:
print(-1)
else:
print(abs(odd-even))
'알고리즘 > 백준' 카테고리의 다른 글
[Silver III] 카드 문자열 - 13417 (python) (0) | 2024.07.02 |
---|---|
[Silver IV] 문자열 집합 - 14425 (python) (0) | 2024.07.02 |
[Silver IV] 떡국 - 20937 (python) (0) | 2024.07.02 |
[Silver IV] 네모네모 시력검사 - 18242 (python) (0) | 2024.07.02 |
[Silver V] 자료구조는 정말 최고야 - 23253 (python) (0) | 2024.07.02 |