题意:给出三个数分别代表红、绿、蓝,问给的数量是否能组成两两颜色不相邻的圆环。
思路:由于判断能组成比较复杂,我们判断哪些不能组成 。
其实就是插入问题,让两组数量较少的插入数量最多的缝隙中,让数量最多的插入两组较少的缝隙中,若都不能填满缝隙,则不能组成。
#include<stdio.h> #include<algorithm> using namespace std; int main(){ int t,a[5],i; while(~scanf("%d",&t)){ while(t--){ for(i=0;i<3;i++){ scanf("%d",&a[i]); } sort(a,a+3); if((a[0]+a[1]<a[2]-1)&&(a[0]+a[1]-1<a[2])) printf("No\n"); else printf("Yes\n"); } } }View Code