HDU-5655 CA Loves Stick(Water) 判断
2016-04-04 19:16
429 查看
CA Loves Stick
TimeLimit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total
Submission(s): 642 Accepted Submission(s): 226
Problem
HDU-5655 CA Loves Stick
Problem
Description
CA
loves to play with sticks.One
day he receives four pieces of sticks, he wants to know these sticks can spell a quadrilateral.(What
is quadrilateral? Click here: https://en.wikipedia.org/wiki/Quadrilateral)
Input
First
line contains T denoting the number of testcases.T
testcases follow. Each testcase contains four integers a,b,c,d in a line, denoting the length of sticks.1≤T≤1000,
0≤a,b,c,d≤263−1
Output
For
each testcase, if these sticks can spell a quadrilateral, output "Yes"; otherwise, output "No" (without the quotation marks).
Sample
Input
2
1
1 1 1
1
1 9 2
Sample
Output
Yes
No
题解:题目意思很简单,判断a、b、c、d四边能否组成四边形,即任意三边>另一边(排除掉为0情况)a
+ b + c > d
很简单范围
[ 0 , 2^63 ),就算在定义long long 的情况下,a+b就爆了,所以相加肯定不对,函数式转换d -
b - c >= a
核心代码:
if((a[1]-a[0]-a[2]>=a[3]) || (a[2]-a[0]-a[1]>=a[3]) || (a[3]-a[0]-a[1]>=a[2]) || (a[0]-a[1]-a[2]>=a[3])) cout<<"No"<<endl;//已排除了为0情况
可恨的是WA了,不是思路错误,而且相减的数若为负数
可能溢出!!!
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
2^63=9223372036854775808
测试数据:1
9223372036854775807 9223372036854775807 1(Yes)
所以需要sort排序,找出最大的数再减掉其他三个数!
具体代码如下:
#include"iostream" #include"algorithm" using namespace std; int main(){ int t,i; long long a[10]; cin>>t; while(t--){ for(i=0; i<4; i++){ cin>>a[i]; } sort(a,a+4); if(!a[0]||!a[1]||!a[2]||!a[3]) { cout<<"No"<<endl; continue; } if(a[3]-a[0]-a[1]>=a[2]) cout<<"No"<<endl; else cout<<"Yes"<<endl; } return 0; }
相关文章推荐
- Mysql常用查询语句
- TCP回射客户程序:str_cli函数
- MyBatis官方教程及源码解析——mapper映射文件
- TLS
- yum
- hdu(1007) 最近点对 分治法
- Euclid's Game---博弈
- hdu(1007) 最近点对 分治法
- c语言问卷调查
- 搭建Android开发环境和第一个Android程序(Eclipse版)
- 第八届河南省程序设计大赛-NYOJ-1236-挑战密室
- PHP读取大文件的多种方法介绍
- PHP如何将XML转成数组
- if_indextoname(unsigned ifindex, char *ifname)
- result的属性
- bzoj 4474: [Jsoi2015]isomorphism
- 学习javaEE每一天2016.4.4
- 我好久没在这上面写东西了,一部分东西都放到有道云笔记上了
- threadid=11: thread exiting with uncaught exception (group=0x41898c38)
- IBM openblockchain学习(四)--crypto源码分析