codechef Three Way Communications 题解
来源:互联网 发布:网络电视机wifi 编辑:程序博客网 时间:2024/05/15 11:11
The Chef likes to stay in touch with his staff. So, the Chef, the head server, and the sous-chef all carry two-way transceivers so they can stay in constant contact. Of course, these transceivers have a limited range so if two are too far apart, they cannot communicate directly.
The Chef invested in top-of-the-line transceivers which have a few advanced features. One is that even if two people cannot talk directly because they are out of range, if there is another transceiver that is close enough to both, then the two transceivers can still communicate with each other using the third transceiver as an intermediate device.
There has been a minor emergency in the Chef's restaurant
and he needs to communicate with both the head server and the sous-chef right away. Help the Chef determine if it is possible for all three people to communicate with each other, even if two must communicate through the third because they are too far apart.
Input
The first line contains a single positive integer T ≤ 100 indicating the number of test cases to follow. The first line of each test case contains a positive integer R ≤ 1,000 indicating that two transceivers can communicate directly without an intermediate transceiver if they are at most R meters away from each other. The remaining three lines of the test case describe the current locations of the Chef, the head server, and the sous-chef, respectively. Each such line contains two integers X,Y (at most 10,000 in absolute value) indicating that the respective person is located at position X,Y.
Output
For each test case you are to output a single line containing a single string. If it is possible for all three to communicate then you should output "yes". Otherwise, you should output "no".
To be clear, we say that two transceivers are close enough to communicate directly if the length of the straight line connecting their X,Y coordinates is at most R.
Example
Input:310 10 01 020 10 01 020 00 22 1Output:yesyesno
会求点和点之间的距离即可。
使用距离的平方比较即可。
#pragma once #include <stdio.h>struct ThreeWayPoint{int x, y;};int ThreeWayCommunications(){int T;scanf("%d", &T);while (T--){int R;scanf("%d", &R);ThreeWayPoint p1, p2, p3;scanf("%d %d %d %d %d %d", &p1.x, &p1.y, &p2.x, &p2.y, &p3.x, &p3.y);R *= R;int P12 = 0, P13 = 0, P23 = 0;P12 = (p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y);P13 = (p1.x - p3.x) * (p1.x - p3.x) + (p1.y - p3.y) * (p1.y - p3.y);P23 = (p3.x - p2.x) * (p3.x - p2.x) + (p3.y - p2.y) * (p3.y - p2.y);if (P12 <= R && P13 <= R) puts("yes");else if (P23 <= R && P12 <= R) puts("yes");else if (P13 <= R && P23 <= R) puts("yes");else puts("no");}return 0;}
- codechef Three Way Communications 题解
- TCP Three Way Handshake
- 什么是three-way merge
- TCP Three-Way handshake
- 三分法 three-way partitioning
- codechef Turbo Sort 题解
- codechef Ambiguous Permutations 题解
- codechef Prime Palindromes 题解
- Codechef Nuclear Reactors 题解
- codechef Cleaning Up 题解
- codechef Permutation Cycles 题解
- codechef Birthday Candles 题解
- codechef Cutting Recipes题解
- codechef Carvans 题解
- Codechef Racing Horses题解
- codechef Hotel Bytelandia题解
- codechef Top Batsmen题解
- codechef Attic Crossing 题解
- apache2.2 虚拟主机配置
- 预览ExtJS 4.0的新功能(四):焕然一新的Store/Proxy
- 再谈面试之小米公司技术面试
- PSI、TS流总结
- OpenCL 学习step by step
- codechef Three Way Communications 题解
- jquery中的each函数
- OpenCL 学习step by step (1) 安装AMD OpenCL APP
- android开发-异步图片加载(一)
- Android4.0 Design之UI设计易犯的错误1
- C# 命令行编译器详解
- 第10周工作计划表
- 组合模式
- java自定义注解