A. New Year Garland
Polycarp is sad — New Year is coming in few days but there is still no snow in his city. To bring himself New Year mood, he decided to decorate his house with some garlands.
The local store introduced a new service this year, called "Build your own garland". So you can buy some red, green and blue lamps, provide them and the store workers will solder a single garland of them. The resulting garland will have all the lamps you provided put in a line. Moreover, no pair of lamps of the same color will be adjacent to each other in this garland!
For example, if you provide 33 red, 33 green and 33 blue lamps, the resulting garland can look like this: "RGBRBGBGR" ("RGB" being the red, green and blue color, respectively). Note that it's ok to have lamps of the same color on the ends of the garland.
However, if you provide, say, 11 red, 1010 green and 22 blue lamps then the store workers won't be able to build any garland of them. Any garland consisting of these lamps will have at least one pair of lamps of the same color adjacent to each other. Note that the store workers should use all the lamps you provided.
So Polycarp has bought some sets of lamps and now he wants to know if the store workers can build a garland from each of them.
The first line contains a single integer tt (1≤t≤1001≤t≤100) — the number of sets of lamps Polycarp has bought.
Each of the next tt lines contains three integers rr, gg and bb (1≤r,g,b≤1091≤r,g,b≤109) — the number of red, green and blue lamps in the set, respectively.
Print tt lines — for each set of lamps print "Yes" if the store workers can build a garland from them and "No" otherwise.
3
3 3 3
1 10 2
2 1 1
Yes
No
Yes
The first two sets are desribed in the statement.
The third set produces garland "RBRG", for example.
既然首尾颜色可以相同,那怎么能叫花环呢
那应该就是一个链啊
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
BBBBBBBBBBBBBBBBBBBBBBBBBB
GGGGGGGGGGGGGGGGGGGGG
RBRBRBRBRBRBRBRBRBRBRBRBRBRBRBRBRRRRRRRRRRRRR;
RBRBRBRBRBRBRBRBRBRBRBRBRBRBRBRBRGRGRGRGRGRG
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
简明扼要的表达了思路
【这题是大佬直接讲的他的思路】(白嫖思路)
思路如下:
首先先排序,先把最大的和第二大的插空(RBRBRBRBRBRBRBRRRRRRRRR)
这时候肯定多了一些最大的那个颜色,这时候就把最少的颜色拿来补
我们只要知道最少的颜色满足的某个区间,就可以快乐输出了、
a[0]>=abs(a[1]-a[2])-1且a[0]<=a[1]+a[2]+abs(a[1]-a[2])“a[0]表示最小的数”
不过a[0]>***的式子很多余。。。。。(不管了,我好不容易推出来的式子我就要加上)
1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 int main() 6 { 7 long long a[3]; 8 int t; 9 cin>>t; 10 while(t--){ 11 cin>>a[0]>>a[1]>>a[2]; 12 sort(a,a+3); 13 if(a[0]>=abs(a[1]-a[2])-1&&a[0]<=a[1]+a[2]+abs(a[1]-a[2]))
14 cout<<"yes"<<' '; 15 else cout<<"no"<<' '; 16 } 16 return 0; 17 }