犄角之势

题目大意:给定三角形三个顶点的坐标,判断是否可形成三角形,如果可形成三角形,求三角形内切圆面积与外接圆面积。

输入格式
第一行一个整数 T,表示数据的组数。接下来 T 行,每行 6 个整数 x1,y1,x2,y2,x3,y3 表示三个点的坐标
输出格式
对于每组数据,如果不能组成三角形,输出"NO SOLUTION",否则输出两个空格分隔的实数,分别表示内切圆和外接圆的面积。相对误差或者绝对误差在 10^-6范围内就认为是正确的。

样例输入:

4
0 3 4 0 0 0
0 0 10 10 -10 -10
3 3 5 3 3 5
0 0 -5 -10 5 -10

样例输出:

3.1415926536 19.6349540849
NO SOLUTION
1.0780241689 6.2831853072
29.9995403716 122.7184630309

#include <cstdio>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <math.h>
using namespace std;
const int inf=0x7fffffff;
const long long mod=1e9+7;
const double PI=acos(-1);                      //PI的定义方式
double juli(int x1,int y1,int x2,int y2){
    return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
    int t;
    int x1,y1,x2,y2,x3,y3;
    cin>>t;
    while(t--){
        cin>>x1>>y1>>x2>>y2>>x3>>y3;
        if((x1-x3)*(y2-y3)==(x2-x3)*(y1-y3)){
            cout<<"NO SOLUTION"<<endl;
            continue;
        }
        double a=juli(x1,y1,x2,y2);
        double b=juli(x1,y1,x3,y3);
        double c=juli(x2,y2,x3,y3);
        double p=(a+b+c)/2;
        double s=sqrt(p*(p-a)*(p-b)*(p-c));        //海伦公式求面积
        double r1=2*s/(a+b+c);                       //三角形内切圆半径
        double r2=0.25*a*b*c/s;                    //三角形外接圆半径
        printf("%.10lf %.10lf\n",r1*r1*PI,r2*r2*PI);
    }
    return 0;
}

原文地址:https://www.cnblogs.com/xusi/p/12411934.html

时间: 2024-08-04 14:09:33

犄角之势的相关文章

马云的第三次北进

“天猫”进北京:马云的第三次北进 马云 经济观察报 记者 梁嘉琳 娄若黛 在自己的公司被阿里巴巴收购之后,成为新阿里人的倪雪(化名)除了每年要完成一套笔试题,包括执业准则.公司制度.价值观等考试外,并没有感受到多少来自阿里的江湖文化. 在她的公司被阿里巴巴并购长达一年后,她始终感受到自己公司的文化和阿里的文化是彼此独立的,阿里巴巴也并未空降CEO,只有股权控制及薪酬激励等地方是仅剩不多的相似纽带. 而从杭州北上的阿里人则明显感受到了北京与杭州的不同.从首都国际机场落地,摆在天猫电器城.天猫超市的

三国时期 谋士综合排名

来源: http://www.e3ol.com/culture/html/2010-8/15903/15903_2010821.shtml 原标题:三国谋士排名(最准确) 首先界定一下三国谋士.从公元184年黄巾起到281年灭吴止,是为三国.谋士,是出主意的人.所以凡是有谋士带兵打仗做统帅的,一律不在这个范畴内.参考资料以<三国志>为准.所以某些李儒之流,不在此内.如果有诸葛亮型的,出得厅堂打硬仗下得厨房耍花样的,则只算作为谋士这一社会角色时的作为. 下面是加分规则: 1. 大谋:谋国谋军+4

c++与python的互相调用

[编者按]最近一直发Python的资料,是因为Python的脚本扩展性.现在.net的动态语言特性已经很强大了,似乎脚本的作用并不明显.但是对于老式的C++,如果能够结合脚本语言的动态性,引用最近流行的一句话:必可以形成犄角之势!C++调用Python可以通过API,也可以通过Boost库实现,Boost.Python就是对API的包装,方便调用而已. 这是一篇比较老的介绍Boost.Python的文章,权当入门吧.因为文中一些东西现在不对…… Boost.Python是 Boost 中的一个组

【大前端攻城狮之路&#183;二】Javascript&amp;QA?程师

今天给大家分享的主题的是Javascript&QA?程师.看到这个主题,可能有人问:前端开发完就OK了,剩下的丢给测试就行,哪里还需要关心这些?但事实上呢,测试是前端开发非常重要的环节,也是迈向高级前端工程师的必经之路! 本文主要分为一下四个部分: · 单元测试 · 性能测试 · 功能测试 · 安全测试 一. 单元测试 单元测试(unit testing),是指对程序中的最小可测试单元进行检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,J