알고리즘

백준 1531번 투명 C++

영춘권의달인 2022. 4. 30. 10:26

출처 : https://www.acmicpc.net/problem/1531

 

100*100 배열에 입력받을때마다 수를 증가시켜서 최종적으로 m보다 크면 안보이는 것이다.

그리고 입력이 x,y좌표로 주어지는데 row, col로 그냥 써도 상관없을 것 같아서 변환하지 않고 사용하였다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>

using namespace std;
using ll = long long;

vector<vector<int>> board(101, vector<int>(101, 0));

void Solve(int row1, int row2, int col1, int col2) {
	for (int i = row1; i <= row2; i++) {
		for (int j = col1; j <= col2; j++) {
			board[i][j]++;
		}
	}
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int n, m;
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		int row1, row2, col1, col2;
		cin >> row1 >> col1 >> row2 >> col2;
		Solve(row1, row2, col1, col2);
	}
	int cnt = 0;
	for (int i = 1; i <= 100; i++) {
		for (int j = 1; j <= 100; j++) {
			if (board[i][j] > m) cnt++;
		}
	}
	cout << cnt;
};