TJU 3513. Triangle
This problem require effort to tackle Precision errors
ACCEPTED
My AC code
//precision error upto 5 digits after decimal taken
//ACCEPTED
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
using namespace std;
int main()
{
long double PI=3.14159265/2.000000000,PI2=3.14159265;
PI=(int)(PI*100000);PI2=(int)(PI2*100000);
PI/=100000;PI2/=100000;
//cout<<PI<<endl;
int x1,y1,x2,y2,x3,y3;
int cases,k=0;
cin>>cases;
while(cases--){
cin>>x1>>y1>>x2>>y2>>x3>>y3;
long double a,b,c;
a=sqrt(pow((x1-x2),2.00000)+pow((y1-y2),2.00000));
b=sqrt(pow((x2-x3),2.00000)+pow((y2-y3),2.00000));
c=sqrt(pow((x3-x1),2.00000)+pow((y3-y1),2.00000));
long double A,B,C;
A=acos((b*b+c*c-a*a)/(2.00000*b*c));
B=acos((a*a+c*c-b*b)/(2.00000*a*c));
C=acos((b*b+a*a-c*c)/(2.00000*b*a));
A=(int)(A*100000); B=(int)(B*100000); C=(int)(C*100000);
A/=100000;B/=100000;C/=100000;
//cout<<A<<" "<<B<<" "<<C<<endl;
printf("Case #%d: ",++k);
if(x1==x2&&y1==y2||x2==x3&&y2==y3||x3==x1&&y3==y1||A==0.00000||B==0.00000||C==0.00000||A==PI2||B==PI2||C==PI2) printf("not a triangle\n");
else if(A<PI&&B<PI&&C<PI){
if(a==b&&b!=c||b==c&&b!=a||c==a&&a!=b) printf("isosceles acute triangle\n");
else if(a!=b&&b!=c&&c!=a) printf("scalene acute triangle\n");
}
else if(A==PI||B==PI||C==PI){
if(a==b&&b!=c||b==c&&b!=a||c==a&&a!=b) printf("isosceles right triangle\n");
else if(a!=b&&b!=c&&c!=a) printf("scalene right triangle\n");
}
else if(A>PI||B>PI||C>PI){
if(a==b&&b!=c||b==c&&b!=a||c==a&&a!=b) printf("isosceles obtuse triangle\n");
else if(a!=b&&b!=c&&c!=a) printf("scalene obtuse triangle\n");
}
}
return 0;
}



Recent Comments