백준(BOJ) 19590 : 비드맨
BOJ
2020. 8. 19. 02:30
https://www.acmicpc.net/problem/19590
19590번: 비드맨
구슬을 엄청 좋아하는 비드맨이 있다. 구슬만 보면 갖고 싶어 하는 비드맨은 오늘도 갖고 싶은 구슬을 발견했다. 그러나 비드맨은 현재 구슬을 너무 많이 갖고 있기 때문에 더 이상 구슬을 가질
www.acmicpc.net
1. 최댓값 > 나머지의 총합인 경우
- 싹 다 최댓값이랑 부딪히면 된다. 따라서 답은 최댓값 - 나머지의 합
2. 최댓값 <= 나머지의 총합인 경우
- 1개 1개씩 큰 것들부터 해나가면 어차피 하나만 남거나 다 없어진다.
따라서 모든 갯수의 합이 홀수면 1, 짝수면 0이 된다.
아래는 소스코드이다.
더보기
#include <iostream>
#include <algorithm>
#include <memory.h>
#include <random>
#include <unordered_map>
#include <math.h>
#include <string>
#include <cstring>
#include <queue>
#include <stack>
#include <deque>
#include <map>
#include <set>
#define FASTIO() ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define TC() int TEST_CASE;cin>>TEST_CASE;for(int TEST_NUM=1;TEST_NUM<=TEST_CASE;TEST_NUM++)
#define fst first
#define snd second
#define int long long
#define endl '\n'
#define pb push_back
#define mp make_pair
#define MOD 1000000007
#define cont continue
#define str string
#define lb lower_bound
#define ub upper_bound
#define V(T) vector<T>
#define Q(T) queue<T>
#define S(T) stack<T>
#define DQ(T) deque<T>
#define rep(i, n) for(int i = 0 ; i < (n) ; i++)
#define fup(i,a,b,c) for(int (i)=(a);(i)<=(b);(i)+=(c))
#define fdn(i,a,b,c) for(int (i)=(a);(i)>=(b);(i)-=(c))
#define MEM0(a) memset((a),0,sizeof(a));
#define MEM_1(a) memset((a),-1,sizeof(a));
#define sc(x) int x; cin >> x;
#define sc2(x,y) int x,y;cin>>x>>y
#define sc3(x,y,z) int x,y,z;cin>>x>>y>>z
#define sc4(x,y,z,w) int x,y,z,w;cin>>x>>y>>z>>w
#define print(x) cout << x << endl
#define all(x) (x).begin(), (x).end()
#define PQ(T) priority_queue<T>
#define GPQ(T) priority_queue<T,vector<T>,greater<T>>
#define getprime(sz)vector<int> prime; bool isprime[sz + 1] = {}; memset(isprime, true, sizeof(isprime)); isprime[1] = false; fup(i, 2, (int)sqrt(sz), 1) {\
if(isprime[i]) prime.pb(i); fup(j, i * i, sz, i) { isprime[j] = false; } }
using namespace std;
typedef pair<int,int> pii;
const int INF = 1e15;
int gcd(int a, int b) { return b ? gcd(b, a%b) : a; }
int lcm(int a, int b) { if (a == 0 || b == 0)return a + b; return a*(b / gcd(a, b)); }
int dx[4] = {-1, 1, 0, 0}; int dy[4] = {0, 0, -1, 1};
signed main() {
FASTIO();
sc(N);
int mx = 0;
int sum = 0;
rep(i, N) {
sc(x);
sum += x;
mx = max(mx, x);
}
sum -= mx;
if(sum >= mx) {
if((sum + mx) % 2 == 1) {
print("1");
}
else {
print("0");
}
}
else {
print(mx - sum);
}
}
'BOJ' 카테고리의 다른 글
백준(BOJ) 2638 : 치즈 (0) | 2020.07.07 |
---|---|
백준(BOJ) 19235 : 모노모노도미노 (0) | 2020.06.27 |
백준(BOJ) 11867 : 박스 나누기 게임 (0) | 2020.06.26 |
백준(BOJ) 16234 : 인구 이동 (0) | 2020.06.22 |
백준(BOJ) 19238 : 스타트 택시 (0) | 2020.06.22 |