코드
#include <iostream>
#include <vector>
#include <cstring>
#include <map>
#include <cmath>
#include <algorithm>
#include <queue>
#include <string>
using namespace std;
typedef long long ll;
const ll MAX_N = 100003;
ll n, a[MAX_N], odd, even, res;
void FASTIO() {
ios_base::sync_with_stdio();
cin.tie(NULL);
cout.tie(NULL);
}
int main() {
FASTIO();
cin >> n;
for(int i = 1; i < n + 1; i++) {
cin >> a[i];
if(i % 2) odd += a[i];
else even += a[i];
}
if (odd == even) {
res = 0;
} else if (odd > even) {
res = (odd - even);
if(n == 3) res = -1; // 인접한 3개를 올려야 하는데 홀짝홀이므로 불가
} else if (even > odd) {
res = (even - odd);
}
cout << res << '\n';
return 0;
}
풀이
짝수가 클 때는 홀수 2, 짝수 1을 통해 크기를 맞춰줄 수 있고, 홀수가 클 때는 짝수 2, 홀수 1을 통해 크기를 맞춰줄 수 있다. 주의할 점은 배열의 크기가 3일 때는 홀 짝 홀이므로 짝수 인덱스에 2를 더할 수 없다. 따라서 -1을 출력해주어야 한다.
'백준' 카테고리의 다른 글
[백준] 1205번 등수 구하기 C++ 코드 (0) | 2024.11.11 |
---|---|
[백준] 2535번 아시아 정보올림피아드 C++ 코드 (0) | 2024.11.11 |
[백준] 3653번 영화 수집 C++ 코드 (2) | 2024.11.11 |
[백준] 18436번 수열과 쿼리 37 C++ 코드 (1) | 2024.11.11 |
[백준] 1747번 소수&팰린드롬 C++ 코드 (2) | 2024.11.05 |