※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 21430번 문제인 Свечки이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/21430
어떤 직선과 그 직선 위에 놓여있지 않은 점에 대하여, 점이 직선의 어느 쪽에 있느냐에 따라
이를 이용하면,
각 직선을 비트로 저장하는 대신 trie 자료구조를 활용해도 좋다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <bitset>
#include <algorithm>
using namespace std;
int N, M, R;
int P[10000][2];
vector<bool> st[10000];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> M >> R;
for (int i = 0; i < N; i++) cin >> P[i][0] >> P[i][1];
for (int i = 0; i < N; i++) st[i].resize(M);
for (int j = 0; j < M; j++) {
int A, B, C; cin >> A >> B >> C;
for (int i = 0; i < N; i++) {
if (A * P[i][0] + B * P[i][1] + C > 0) st[i][j] = 1;
}
}
sort(st, st + N);
for (int i = 0; i + 1 < N; i++) {
if (st[i] == st[i + 1]) {
cout << "YES";
return 0;
}
}
cout << "NO";
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 33488 // C++] 아름다운 수열 (0) | 2025.02.18 |
---|---|
[BOJ 5714 // C++] Isosceles Triangles (0) | 2025.02.17 |
[BOJ 27222 // C++] Штангист (0) | 2025.02.13 |
[BOJ 22412 // C++] ABC Gene (0) | 2025.02.12 |
[BOJ 33272 // C++] TAIDADA (0) | 2025.02.10 |