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++;
}
'π Cpp' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[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 |