https://www.acmicpc.net/problem/1004
๋ฌธ์
์ด๋ฆฐ ์์๋ ์ํน์ฑ B-664์์ ์์ ์ด ์ฌ๋ํ๋ ํ ์ก์ด ์ฅ๋ฏธ๋ฅผ ์ํด ์ด์๊ฐ๋ค. ์ด๋ ๋ ์ฅ๋ฏธ๊ฐ ์ํ์ ๋น ์ง๊ฒ ๋ ๊ฒ์ ์๊ฒ ๋ ์ด๋ฆฐ ์์๋, ์ฅ๋ฏธ๋ฅผ ๊ตฌํ๊ธฐ ์ํด ์ํ์๋ฅผ ๋ฐ๋ผ ๊ธด ์ฌํ์ ํ๊ธฐ ์์ํ๋ค. ํ์ง๋ง ์ด๋ฆฐ ์์์ ์ฐ์ฃผ์ ์ ๊ทธ๋ ๊ฒ ์ข์ง ์์์ ํ์ฑ๊ณ ๊ฐ์ ์ด๋์ ์ต๋ํ ํผํด์ ์ฌํํด์ผ ํ๋ค. ์๋์ ๊ทธ๋ฆผ์ ์ด๋ฆฐ ์์๊ฐ ํผ์ณ๋ณธ ์ํ์ ์ง๋์ ์ผ๋ถ์ด๋ค.
๋นจ๊ฐ ์ค์ ์ ์ด๋ฆฐ ์์๊ฐ ์ถ๋ฐ์ ์์ ๋์ฐฉ์ ๊น์ง ๋๋ฌํ๋๋ฐ ์์ด์ ํ์ํ ํ์ฑ๊ณ ์ง์ /์ดํ ํ์๋ฅผ ์ต์ํํ๋ ๊ฒฝ๋ก์ด๋ฉฐ, ์์ ํ์ฑ๊ณ์ ๊ฒฝ๊ณ๋ฅผ ์๋ฏธํ๋ค. ์ด๋ฌํ ๊ฒฝ๋ก๋ ์ฌ๋ฌ ๊ฐ ์กด์ฌํ ์ ์์ง๋ง ์ ์ด๋ 3๋ฒ์ ํ์ฑ๊ณ ์ง์ /์ดํ์ด ํ์ํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
์์ ๊ฐ์ ์ํ์ ์ง๋, ์ถ๋ฐ์ , ๋์ฐฉ์ ์ด ์ฃผ์ด์ก์ ๋ ์ด๋ฆฐ ์์์๊ฒ ํ์ํ ์ต์์ ํ์ฑ๊ณ ์ง์ /์ดํ ํ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ๋ณด์. ํ์ฑ๊ณ์ ๊ฒฝ๊ณ๊ฐ ๋ง๋ฟ๊ฑฐ๋ ์๋ก ๊ต์ฐจํ๋ ๊ฒฝ์ฐ๋ ์๋ค. ๋ํ, ์ถ๋ฐ์ ์ด๋ ๋์ฐฉ์ ์ด ํ์ฑ๊ณ ๊ฒฝ๊ณ์ ๊ฑธ์ณ์ง ๊ฒฝ์ฐ ์ญ์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง์ง ์๋๋ค.
์ ๋ ฅ
์ ๋ ฅ์ ์ฒซ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ ๋ค์ ์ค๋ถํฐ ๊ฐ๊ฐ์ ํ ์คํธ์ผ์ด์ค์ ๋ํด ์ฒซ์งธ ์ค์ ์ถ๋ฐ์ (x1, y1)๊ณผ ๋์ฐฉ์ (x2, y2)์ด ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค์๋ ํ์ฑ๊ณ์ ๊ฐ์ n์ด ์ฃผ์ด์ง๋ฉฐ, ์ธ ๋ฒ์งธ ์ค๋ถํฐ n์ค์ ๊ฑธ์ณ ํ์ฑ๊ณ์ ์ค์ ๊ณผ ๋ฐ์ง๋ฆ (cx, cy, r)์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด ์ด๋ฆฐ ์์๊ฐ ๊ฑฐ์ณ์ผ ํ ์ต์์ ํ์ฑ๊ณ ์ง์ /์ดํ ํ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ ํ
- -1000 ≤ x1, y1, x2, y2, cx, cy ≤ 1000
- 1 ≤ r ≤ 1000
- 1 ≤ n ≤ 50
- ์ขํ์ ๋ฐ์ง๋ฆ์ ๋ชจ๋ ์ ์
ํ์ด
// ํ์ด : https://whkakrkr.tistory.com
#include <iostream>
#include <vector>
using namespace std;
int get_distance(int x1, int y1, int x2, int y2) {
return (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
}
int main() {
ios_base::sync_with_stdio(false);
cout.tie(NULL);
cin.tie(NULL);
int t;
cin >> t;
while(t--) {
int x1,x2,y1,y2, n, cx,cy,r, ans=0;
cin >> x1 >> y1 >> x2 >> y2 >> n;
while(n--) {
cin >> cx >> cy >> r;
// ๊ฐ ์ง์ ์ด ์ ๋ด๋ถ์ ์๋์ง ์ฌ๋ถ
bool isStartIn = get_distance(x1, y1, cx, cy) <= r*r;
bool isEndIn = get_distance(x2, y2, cx, cy) <= r*r;
if(isStartIn != isEndIn) {
ans++;
}
}
cout << ans << "\n";
}
return 0;
}
์ํ์ฐฉ์ค
if(isStartIn || isEndIn) {
if(isStartIn && isEndIn) {
break;
}
ans++;
}
์ ์ฝ๋๋ฅผ ์๋ ์ฝ๋๋ก ๋ฐ๊ฟ์ ์๊ฐ์ด๊ณผ ํด๊ฒฐ
if(isStartIn != isEndIn) {
ans++;
}
'๐ BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 2636๋ฒ: ์น์ฆ (0) | 2024.04.11 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 2217๋ฒ: ๋กํ (0) | 2024.03.15 |
[BOJ][C++] ๋ฐฑ์ค 1485๋ฒ: ๊ฐ๋ก์ (0) | 2024.03.13 |
[BOJ][C++] ๋ฐฑ์ค 15686๋ฒ: ์นํจ๋ฐฐ๋ฌ (0) | 2024.03.11 |
[BOJ][C++] ๋ฐฑ์ค 1037๋ฒ: ์ฝ์ (0) | 2024.03.08 |