白駿1002タレット.cpp



<ソース>
#include <iostream>
#include <cmath>
using namespace std;
int main(){
    int NumTestCases;
    cin >> NumTestCases;
    for(int i = 0; i < NumTestCases; i++){
        int x1,y1,r1;
        int x2,y2,r2;
        int answer;
        cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2;
        int distance = pow(x1-x2,2) + pow(y1-y2,2);
        
        if(x1 == x2 && y1 == y2 && r1 == r2){
            answer = -1;
            cout << answer << endl;
            continue;
        }
        //cout << distance << " " << pow(r1+r2,2) << endl;
        if(pow(r1+r2,2) == distance || pow(r1-r2,2) == distance){
            answer = 1;
        }else if(pow(r1+r2,2) < distance || pow(r1-r2,2) > distance){
            answer = 0;
        }else if(pow(r1-r2,2) < distance && distance < pow(r1+r2,2)){
            answer = 2;
        }
        
        cout << answer << endl;
    }
}
  • 変数&関数
    int NumTestCase:テストケース数
    int x 1、y 1、r 1:趙奎賢の位置と距離
    int x 2,y 2,r 2:白勝煥の位置と距離
    int distance:曹圭賢と白勝煥の距離
    int anasurn:
  • アルゴリズム
    距離と半径の関係で答えを求める.
    1.内点、外付け:1個
    2.内部、外部:0個
    3.2時に会う時:二つ
    4.全く同じ円:無限個
  • で学んだこと
    x..
  • 残念と感じ
    考えがきつい問題を理解することが大切らしい.