CF1279 A. New Year Garland

2024-04-16 02:08
文章标签 new year garland cf1279

本文主要是介绍CF1279 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 3 red, 3 green and 3 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, 1 red, 10 green and 2 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.

Input
The first line contains a single integer 𝑡 (1≤𝑡≤100) — the number of sets of lamps Polycarp has bought.

Each of the next 𝑡 lines contains three integers 𝑟, 𝑔 and 𝑏 (1≤𝑟,𝑔,𝑏≤109) — the number of red, green and blue lamps in the set, respectively.

Output
Print 𝑡 lines — for each set of lamps print “Yes” if the store workers can build a garland from them and “No” otherwise.

Example
inputCopy
3
3 3 3
1 10 2
2 1 1
outputCopy
Yes
No
Yes
Note
The first two sets are desribed in the statement.

The third set produces garland “RBRG”, for example.

题意:
给出A,B,C的数目,求是否存在排列方式使得没有相邻两个相同。
思路:
我写的时候思路没到位,想的是先放三个的再放两个的,这是假算法。
贪心的算,肯定要先把最大的那个用完,假设是A ≤ B ≤ C。
C最大可以等于A + B + 1,如果C > A + B + 1,那肯定是放不下的(CACBCXCXC…)
如果C ≤ A + B + 1. 取完C后一定可以使得A = B或者A + 1 = B,那么剩下的就直接放就好了。

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>using namespace std;int a[10];
int main()
{int T;scanf("%d",&T);while(T--){scanf("%d%d%d",&a[1],&a[2],&a[3]);sort(a + 1,a + 1 + 3);if(a[1] + a[2] + 1 >= a[3]){printf("Yes\n");}else{printf("No\n");}}return 0;
}

这篇关于CF1279 A. New Year Garland的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/907530

相关文章

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

List list = new ArrayList();和ArrayList list=new ArrayList();的区别?

List是一个接口,而ArrayList 是一个类。 ArrayList 继承并实现了List。 List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。而ArrayList list=new ArrayList();创建一对象则保留了A

vue原理分析(六)--研究new Vue()

今天我们来分析使用new Vue() 之前研究时,只是说是在创建一个实例。并没有深入进行研究 在vue的源码中找下Vue的构造函数 function Vue(options) {if (!(this instanceof Vue)) {warn$2('Vue is a constructor and should be called with the `new` keyword');}thi

GTK中创建线程函数g_thread_new和g_thread_create的区别

使用GThread函数,需要引用glib.h头文件。 这两个接口的核心区别就是  g_thread_create 是旧的接口,现在已经不使用了,而g_thread_new是新的接口,建议使用。 g_thread_create: g_thread_create has been deprecated since version 2.32 and should not be used in n

New的VC编译器实现

当我们调用 new 的时候,例如 int *p = new int; 时,编译器到底作了什么工作呢?跟进断点看一看。   (在 vc debug模式下 ) double *p1 = new double ; 00411A6E  push        8    00411A70  call        operator new (4111B8h) 00411A75  add

Python方法:__init__,__new__,__class__的使用详解

转自:https://blog.csdn.net/qq_26442553/article/details/82464682 因为python中所有类默认继承object类。而object类提供了了很多原始的内建属性和方法,所以用户自定义的类在Python中也会继承这些内建属性。可以使用dir()函数可以查看,虽然python提供了很多内建属性但实际开发中常用的不多。而很多系统提供的内建属性实际

linux 环境下使用PHP OpenSSL扩展函数openssl_pkey_new(),返回false的原因

<?php$config = array('private_key_bits' => 2048,);$res = openssl_pkey_new($config); $res返回false的时候,检查发现,是linux系统缺少了openssl的配置,解决方法如下: 直接将php -m 中 Openssl 中的xx.conf 配置移动到对应的目录,然后重启php-fpm 完美解决

【js面试题】说说new操作符具体干了什么?

JavaScript中的new操作符:深入解析与自定义实现 在JavaScript中,new操作符是一个核心概念,用于创建一个实例对象。理解new的工作原理不仅有助于我们更好地掌握JavaScript的面向对象编程,还能让我们在需要时自定义构造函数的行为。本文将从new是什么、其工作流程、存在的必要性、解决的问题以及如何手动实现一个new操作符来深入探讨这一主题。 什么是new操作符? ne