알고리즘/Baekjoon Online Judge
[큰 수 문제 - C++ 사용] https://www.acmicpc.net/problem/1247
skesswswkk
2020. 4. 15. 20:12
01. 문제
https://www.acmicpc.net/problem/1247
1247번: 부호
총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1≤N≤100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거나 같다.
www.acmicpc.net
02. 설명
주어지는 정수의 절댓값은 9223372036854775807보다 작거나 같기 때문에 2^127 ~ 2^127-1을 커버가능한 __int128을 사용하여 풀 수 있다.
03. 코드
#include <iostream>
using namespace std;
int main() {
for (int i = 0; i < 3; ++i) {
int n;
cin >> n;
__int128 s = 0; //-2^127 ~ 2^127-1 커버가능
long long val = 0;
for (int j = 0; j < n; ++j) {
cin >> val;
s += val;
}
if (s > 0) cout << "+" << endl;
else if (s < 0) cout << "-" << endl;
else cout << 0 << endl;
}
return 0;
}