알고리즘 캠프에서 풀었던 다른 문제들:
알고리즘 캠프 인덱스
5일동안 풀었던 여러 유형의 백준 문제들 1일차 Brute Force 2일차 BFS 3일차 4일차 5일차 오전(A) A. 15650번 N과 M(2) B. 14501번 퇴사(+ 퇴사 2) 오후(B) A. 16922 로마숫자 만들기 B. 16917번 두 동전 C. 1693..
dongwook-chang.tistory.com
문제 링크:
16937번: 두 스티커
첫째 줄에 모눈종이의 크기 H, W, 둘째 줄에 스티커의 수 N이 주어진다. 다음 N개의 줄에는 스티커의 크기 Ri, Ci가 주어진다.
www.acmicpc.net
#include <iostream>
#include <algorithm>
using namespace std;
int A, B, N;
int ab[100][2];
#define IN(p) ((p).first <= A && (p).second <= B)
int marea;
pair<int, int> new_ab(int c, int d) {
if (c > d) { return make_pair(c, d); }
else { return make_pair(d, c); }
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
cin >> A >> B >> N;
if (B > A) swap(A, B);
for (int i = 0; i < N; ++i) {
cin >> ab[i][0] >> ab[i][1];
}
int i, j;
for (i = 0; i < N - 1; ++i) {
for (j = i + 1; j < N; ++j) {
for (auto k : { 0, 1 }) {
for (auto l : { 0, 1 }) {
if (IN(new_ab(ab[i][k] + ab[j][l], max(ab[i][1 - k], ab[j][1 - l])))) {
int area = ab[i][0] * ab[i][1] + ab[j][0] * ab[j][1];
if (area > marea)
marea = area;
}
}
}
}
}
cout << marea;
return 0;
}