https://www.acmicpc.net/problem/1004
해설
이 문제는 1002번 터렛 문제와 마찬가지로 두 원의 위치 관계를 사용해야 한다.
1002번 풀이할 때 열심히 두 원의 위치 관계를 설명했기 때문에 이번 해설에서는 안하려고 한다. (사실 귀찮다.) ( 터렛 문제 해설 참고 : https://far-simple.tistory.com/3)
이 문제를 자기 스스로 풀어보고 싶다면 1002번 터렛 문제를 완전히 익히고 다시 풀어보기를 권장한다.
˙˙˙
소스코드
#include <iostream>
using namespace std;
int main(){
int n, x1, x2, y1, y2;
int nn, cnt, cx, cy, cr;
int da, db, sqrcr;
cin >> n;
for(int i=0; i<n; i++){
cnt=0;
cin >> x1 >> y1 >> x2 >> y2 >> nn;
for(int j=0; j<nn; j++){
cin >> cx >> cy >> cr;
da = (x1-cx) * (x1-cx) + (y1-cy) * (y1-cy);
db = (x2-cx) * (x2-cx) + (y2-cy) * (y2-cy);
sqrcr = cr * cr;
if(da < sqrcr && db < sqrcr) continue;
else if(da < sqrcr || db < sqrcr) cnt++;
}
cout << cnt << '\n';
}
}
'백준 문제 풀이' 카테고리의 다른 글
[백준 11720] 숫자의 합 (0) | 2020.03.19 |
---|---|
[백준 1008] A/B (0) | 2020.03.19 |
[백준 1003] 피보나치 함수 (0) | 2020.03.19 |
[백준 1002] 터렛 (0) | 2020.03.19 |
[백준 1001] A-B (0) | 2020.03.19 |
댓글