NC23871. Chino with Geometry
描述
Chino的数学很差,因此Cocoa非常担心。这一天,Cocoa准备教Chino学习圆与直线的位置关系。
众所周知,直线和圆有三种位置关系:相离、相切、相割,主要根据圆心到直线的距离来判定。
是以整点
为圆心、正整数
为半径的圆,整点
分别是圆外一点以及
轴上的一点,形成一条圆的割线(也就是和圆有两个交点)。现在Cocoa想要知道,
的值是多少?
题目对于Chino来说太难啦,你能帮一帮Chino吗?
输入描述
六个正整数x0, y0, r, x1, y1, y2
输出描述
题目要求的答案,精确到整数
示例1
输入:
2 2 1 3 1 2
输出:
1
C(clang 3.9) 解法, 执行用时: 3ms, 内存消耗: 352K, 提交时间: 2019-04-06 13:23:09
#include<stdio.h> int main() { long long a,b,c,d,e,f,g,h,i,j; scanf("%ld%ld%ld%ld%ld%ld",&a,&b,&c,&d,&e,&f); g=a-d; h=b-e; g=g*g; g=g+h*h; g=g-c*c; printf("%lld",g); }
Python3(3.5.2) 解法, 执行用时: 36ms, 内存消耗: 3404K, 提交时间: 2019-04-06 13:22:09
while True: try: x0,y0,r,x1,y1,y2=map(int,input().split()) res=int(((x0-x1)**2+(y0-y1)**2-r*r)+0.5) print(res) except: break
C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 356K, 提交时间: 2019-04-10 21:21:03
#include<iostream> int main() { long long x0,y0,r,x1,y1,y2; return std::cin>>x0>>y0>>r>>x1>>y1>>y2,std::cout<<(y0-y1)*(y0-y1)+(x0-x1)*(x0-x1)-r*r,0; }
C++14(g++5.4) 解法, 执行用时: 4ms, 内存消耗: 480K, 提交时间: 2019-04-10 20:16:29
#include<iostream> int main() { long long x0,y0,r,x1,y1,y2; return std::cin>>x0>>y0>>r>>x1>>y1>>y2,std::cout<<(y0-y1)*(y0-y1)+(x0-x1)*(x0-x1)-r*r,0; }