Submission #1678257
Source Code Expand
#include <iostream> #include <iomanip> #include <complex> #include <vector> #include <cassert> #include <algorithm> #include <cmath> #include <queue> #include <utility> using namespace std; //num const double EPS = 1e-10; const double INF = 1e12; #define X real() #define Y imag() #define LE(n,m) ((n) < (m) + EPS) #define GE(n,m) ((n) + EPS > (m)) #define EQ(n,m) (abs((n)-(m)) < EPS) // point, line, circle typedef complex<double> P; typedef vector<P> VP; struct C{ P p; double r; C(const P& p, const double& r) : p(p), r(r) {} }; namespace std{ bool operator < (const P& a, const P& b){ return (a.X != b.X)? a.X < b.X : a.Y < b.Y; } } // vector operation double dot(P a, P b){ return (conj(a)*b).X; } double cross(P a, P b){ return (conj(a)*b).Y; } //utility int ccw(P a, P b, P c){ b -= a; c -= a; if(cross(b,c) > EPS) return +1; //counter clockwise if(cross(b,c) <-EPS) return -1; //clockwise if(dot(b,c) < EPS) return +2; //c-a-b if(norm(b) < norm(c)) return -2; //a-b-c return 0; //a-c-b } int main(){ vector<P> v(3); for(int i=0; i<3; i++){ cin >> v[i].X >> v[i].Y; } vector<double> len(3); vector<double> angle(3); for(int i=0; i<3; i++){ len[i] = abs(v[(i+1)%3]-v[(i+2)%3]); P e1 = v[(i+1)%3]-v[i]; P e2 = v[(i+2)%3]-v[i]; angle[i] = tan( acos( dot(e1,e2)/(abs(e1)*abs(e2)) ) *0.5 ); } double ans=0; for(int i=0; i<3; i++){ ans = max(ans, len[i]/(2.0 +(1/angle[(i+1)%3]) +(1/angle[(i+2)%3])) ); } cout << fixed; cout << setprecision(11); cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Inscribed Bicycle |
User | syl659 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1687 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:57:9: error: no match for ‘operator>>’ (operand types are ‘std::istream {aka std::basic_istream<char>}’ and ‘double’) cin >> v[i].X >> v[i].Y; ^ In file included from /usr/include/c++/5/iostream:40:0, from ./Main.cpp:1: /usr/include/c++/5/istream:168:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match> operator>>(bool& __n) ^ /usr/include/c++/5/istream:168:7: note: conversion of argument 1 would be ill-formed: ./Main.cpp:15:15: error: invalid initialization of non-const reference of type ‘bool&’ from an rvalue of type ‘bool’ #define X real() ^ ./Main.cpp:57:17: note: in expansion of macro ‘X’ cin >> v[i].X >> v[i].Y; ^ In file included from /usr/include/c+...