https://www.acmicpc.net/problem/15781
문제
배틀그라운드라는 게임에서는 머리와 몸을 보호하기 위해 헬멧과 조끼를 입는다.
맵에는 다양한 헬멧과 조끼가 있으며 각각 방어력을 갖고 있다. 또한 최대 1개의 헬멧과 조끼밖에 입지 못한다. 경수는 배틀그라운드에서 승리하고 싶기 때문에 시간이 걸리더라도 최고의 헬멧과 조끼를 주워서 최대의 방어력을 얻고 싶어한다.
맵에 존재하는 조끼와 헬멧의 방어력이 주어졌을 때 경수를 도와 경수가 얻을 수 있는 방어력의 최댓값을 구해주자.
입력
입력의 첫째 줄에 맵에 존재하는 헬멧의 개수 N(N은 1000이하의 자연수)과 조끼의 개수 M(M은 1000이하의 자연수)이 주어진다. 둘째 줄에 각 헬멧의 방어력 h[i] (h[i]는 10억 이하의 자연수)가 N개 만큼 주어지며, 셋째 줄에 각 조끼의 방어력 a[i] (a[i]는 10억 이하의 자연수)가 M개 만큼 주어진다.
출력
경수가 얻을 수 있는 방어력의 최댓값을 출력한다.
예제 입력 1
5 7
10 60 15 20 7
1 2 3 7 5 1 3
예제 출력 1
67
예제 입력 2
2 3
1 1000000000
20 18 1000000000
예제 출력 2
2000000000
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
using namespace std;
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <functional>
#include <cmath>
#include <map>
#include <set>
#define _CRT_SECURE_NO_WARNINGS
#define INF 987654321
#define ll long long
typedef pair<int, int> PII;
int main() {
int n, m;
cin >> n >> m;
vector<int> helmet(n);
vector<int> vest(m);
for (int i = 0; i < n; i++) {
int num;
cin >> num;
helmet.push_back(num);
}
for (int i = 0; i < m; i++) {
int num;
cin >> num;
vest.push_back(num);
}
cout << *max_element(helmet.begin(), helmet.end()) + *max_element(vest.begin(), vest.end()) << "\n";
return 0;
}
|
cs |
728x90
반응형
'🔻PS > Baekjoon' 카테고리의 다른 글
[Baekjoon] 백준 17173 배수들의 합 C++ (0) | 2022.09.18 |
---|---|
[Baekjoon] 백준 4690 완전 세제곱 C++ (0) | 2022.09.17 |
[Baekjoon] 백준 5176 대회 자리 C++ (0) | 2022.09.15 |
[Baekjoon] 백준 4493 가위 바위 보? C++ (0) | 2022.09.12 |
[Baekjoon] 백준 10409 서버 C++ (0) | 2022.09.11 |