- 문제 링크 : boj.kr/28067
- 난이도 : G4
- 태그 : 구현, 브루트포스, 기하학
코드
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define INF 0x7FFFFFFF
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll, ll>;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n, m;
cin >> n >> m;
vector<pii> arr;
for(int i = 0; i <= n; i++) {
for(int j = 0; j <= m; j++) {
arr.emplace_back(pii(i, j));
}
}
set<tuple<int,int,int>> _s;
int s = arr.size();
for(int i = 0; i < s; i++) {
for(int j = i+1; j < s; j++) {
for(int k = j+1; k < s; k++) {
int a = arr[k].first - arr[i].first;
int b = arr[k].second - arr[i].second;
int c = arr[j].first - arr[i].first;
int d = arr[j].second - arr[i].second;
if(a*d == b*c) {
continue;
}
int e = arr[k].first - arr[j].first;
int f = arr[k].second - arr[j].second;
vector<int> line(3);
line[0] = a*a + b*b;
line[1] = c*c + d*d;
line[2] = e*e + f*f;
sort(all(line));
_s.insert(make_tuple(line[0], line[1], line[2]));
}
}
}
cout << _s.size();
return 0;
}
풀이
가능한 삼각형을 브루트포스로 찾은 뒤, 변의 길이로 정렬하여 set에 넣어준다. set의 크기가 답이 된다.
728x90
'PS' 카테고리의 다른 글
BOJ 31233 : 관광 상품 (0) | 2024.05.14 |
---|---|
BOJ 17073 : 나무 위의 빗물 (0) | 2024.05.13 |
BOJ 2467 : 용액 (0) | 2024.05.11 |
BOJ 2470 : 두 용액 (0) | 2024.05.10 |
BOJ 14938 : 서강그라운드 (0) | 2024.05.09 |