※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 24145번 문제인 折り紙 (Origami)이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/24145
주어진 조건을 잘 확인하면, 각 종이가 덮는 칸은 400개 이하이므로 각 종이로 덮인 칸의 수의 합은 100만개 이하임을 알 수 있다.
이를 이용하면, 종이로 덮인 각 칸에 대하여 그 칸이 덮인 횟수를 map을 이용해 세어 문제를 해결할 수 있음을 알 수 있다. 이를 구현하여 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int N, X, Y;;
map<pair<int, int>, int> mp;
int mx, cnt;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> X >> Y;
while (N--) {
int X1, Y1, X2, Y2; cin >> X1 >> Y1 >> X2 >> Y2;
for (int x = X1; x <= X2; x++) {
for (int y = Y1; y <= Y2; y++) {
mp[make_pair(x, y)]++;
}
}
}
for (auto &p : mp) {
if (mx < p.second) mx = p.second, cnt = 1;
else if (mx == p.second) cnt++;
}
cout << mx << '\n' << cnt;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 16805 // C++] Where is the Boundary (2) | 2024.09.12 |
---|---|
[BOJ 16581 // C++] Lie Detector (2) | 2024.09.11 |
[BOJ 15487 // C++] A[j]-A[i]+A[l]-A[k] (1) | 2024.09.09 |
[BOJ 19686 // C++] Lost Array (0) | 2024.09.08 |
[BOJ 14488 // C++] 준오는 급식충이야!! (1) | 2024.09.07 |