ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • boj 1002
    카테고리 없음 2021. 8. 15. 13:15

    먼저 두 점이 같을 때 따로 처리해주고 거리의 제곱으로 판별하면 부호 신경쓸 것 없이 간단하다. 

    #include <bits/stdc++.h>
    using namespace std;
    
    
    int main(void) {
    	int T;
    	cin >> T;
    	while (T--) {
    		int x1, y1, r1, x2, y2, r2;
    		cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
    		int d = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
    
    		if (d == 0) {
    			if (r1 == r2) cout << "-1" << "\n";
    			else cout << "0" << "\n";
    
    		}
    
    		else if (d > (r1 + r2) * (r1 + r2)) {
    			cout << "0" << "\n";
    
    		}
    
    		else if (d == (r1 + r2) * (r1 + r2) || d == (r1 - r2) * (r1 - r2)) {
    			cout << "1" << "\n";
    
    		}
    
    		else if (d > (r1 - r2) * (r1 - r2) && d < (r1 + r2) * (r1 + r2)) {
    			cout << "2" << "\n";
    
    		}
    		else cout << "0" << "\n";
    
    	}
    }

    댓글

Designed by Tistory.