O - Masha and Bears
Problem description
A family consisting of father bear, mother bear and son bear owns three cars. Father bear can climb into the largest car and he likes it. Also, mother bear can climb into the middle car and she likes it. Moreover, son bear can climb into the smallest car and he likes it. It's known that the largest car is strictly larger than the middle car, and the middle car is strictly larger than the smallest car.
Masha came to test these cars. She could climb into all cars, but she liked only the smallest car.
It's known that a character with size a can climb into some car with size b if and only if a ≤ b, he or she likes it if and only if he can climb into this car and 2a ≥ b.
You are given sizes of bears and Masha. Find out some possible integer non-negative sizes of cars.
Input
You are given four integers V1, V2, V3, Vm(1 ≤ Vi ≤ 100) — sizes of father bear, mother bear, son bear and Masha, respectively. It's guaranteed that V1 > V2 > V3.
Output
Output three integers — sizes of father bear's car, mother bear's car and son bear's car, respectively.
If there are multiple possible solutions, print any.
If there is no solution, print "-1" (without quotes).
Examples
Input
50 30 10 10
Output
50
30
10
Input
100 50 10 21
Output
-1
Note
In first test case all conditions for cars' sizes are satisfied.
In second test case there is no answer, because Masha should be able to climb into smallest car (so size of smallest car in not less than 21), but son bear should like it, so maximum possible size of it is 20.
解题思路:假设一只熊的体积为V,一辆车的体积为C,则有如下三种情况:
①熊不能进去的车满足:V>C;
②熊能进去但不喜欢的车满足:V<2*V<C;
③熊能进去而且喜欢的车满足:V<=C<=2*V。
设三辆车的体积分别为C1、C2、C3,其关系严格递减即C1>C2>C3。父亲,母亲,儿子分别能进去和喜欢自己的车满足:Vi≤Ci≤2*Vi,(i=1,2,3)。
其中玛莎来做测试,要使玛莎能进去所有的车,则玛莎的体积只需不大于中等的车:Vm<=C3<V2<=C2;因为玛莎和儿子都喜欢体积最小的车,所以最小车的体积至少为max(Vm,V3)。如果Vm>=V3,此时最小车的体积为Vm,儿子能进去且喜欢它满足:2*V3>=C3>=Vm>=V3;如果Vm<V3,玛莎能进去且喜欢它满足:2*Vm>=C3>=V3>Vm。因此,不满足情况的有Vm>2*V3或者V3>2*Vm或者Vm>=V2,此时输出-1。否则输出C1、C2、C3的值。我们继续推导下去:以上已经求出最小车的体积为C3=max(Vm,V3);假设儿子的体积刚好为最小车的体积,则儿子能进去母亲的车但不能喜欢她的车满足:2*V3<=2*C3<C2,又V2<=C2<=2*V2,所以C2(min)=max(2*C3+1,V2)∈[C2,2*V2];同理可得母亲能进去父亲的车但不能喜欢他的车满足:V2<=C2<=2*V2<C1,又V1<=C1<=2*V1,所以C1(min)=max(2*V2+1,V1)∈[C1,2*V1]。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int v1,v2,v3,vm;
cin>>v1>>v2>>v3>>vm;
if((vm>*v3)||(v3>*vm)||(vm>=v2))cout<<"-1"<<endl;
else{
v3=max(v3,vm);//v3为三辆车中最小的体积
cout<<max(*v2+,v1)<<"\n"<<max(*v3+,v2)<<"\n"<<v3<<endl;
}
return ;
}
O - Masha and Bears的更多相关文章
- CodeForces - 907A Masha and Bears
A. Masha and Bears time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Masha and Bears(翻译+思维)
Description A family consisting of father bear, mother bear and son bear owns three cars. Father bea ...
- Codeforces Round #454 Div. 2 A B C (暂时)
A. Masha and bears 题意 人的体积为\(V\),车的大小为\(size\),人能钻进车的条件是\(V\leq size\),人对车满意的条件是\(2V\geq size\). 现知道 ...
- Codeforces Round #454
Masha and Bears Tic-Tac-Toe Shockers Seating of Students Party Power Tower Reverses
- codeforces 653D D. Delivery Bears(二分+网络流)
题目链接: D. Delivery Bears time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- codeforces 887B Cubes for Masha 两种暴力
B. Cubes for Masha time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- 【cf789B】Masha and geometric depression(分类讨论/暴力)
B. Masha and geometric depression 题意 在黑板上写数列,首项是b,公比是q,超过l时就停止不写.给定m个数,遇到后跳过不写.问一共写多少个数,如果无穷个输出inf. ...
- 寒假集训——搜索 D - Cubes for Masha
#include <stdio.h> #include <stdlib.h> #include <iostream> #include <string.h&g ...
- 524 (Div. 2) Masha and two friends
Codeforces Round #524 (Div. 2) C. Masha and two friends 题目链接 题意:较为简单,初始给定这个白黑相交的格子,第一遍把坐标范围内的全部涂白,第二 ...
随机推荐
- dubbo之线程模型
事件处理线程说明 如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识,则直接在IO线程上处理更快,因为减少了线程池调度. 但如果事件处理逻辑较慢,或者需要发起新的IO请求 ...
- bos开发时,测试卡在登录界面解决
在BOS工作空间工程路径下新建sp文件夹,如在E:\bosworkspace8.2\Project_0\lib 新建sp文件夹E:\bosworkspace8.2\Project_0\lib\sp.然 ...
- Lua循环结构while循环、repeat 循环、for循环_学习笔记03
Lua循环结构while循环.repeat 循环.for循环 while语法结构 while 循环条件 do 循环体 end --1.输出1到100 index = do print(index) ...
- 51nod1242斐波那契数列的第N项 【矩阵快速幂】
斐波那契数列的定义如下: F(0) = 0 F(1) = 1 F(n) = F(n - 1) + F(n - 2) (n >= 2) (1, 1, 2, 3, 5, 8, 13, 21, 34, ...
- matplotlib的annotate用法小结
这个是matplotlib自定义的annotate方法的文本: 一. def annotate(self, s, xy, *args, **kwargs): a = mtext.Annotation( ...
- C++string和int的相互转化
本方法主要利用sstream头文件中的方法来进行转换 1.int转成string #include <iostream> #include<string> #include&l ...
- 深入C++的运算符重载
对于简单的运算符,可以参考之前的博文.之后会有一篇关于从等号运算符重载的角度研究深浅拷贝的博文.这里是讲:逗号,取成员运算符,输入输出运算符,下标运算符,括号,new和delete的重载. 逗号运算符 ...
- AtCoder ARC 076E - Connected?
传送门:http://arc076.contest.atcoder.jp/tasks/arc076_c 平面上有一个R×C的网格,格点上可能写有数字1~N,每个数字出现两次.现在用一条曲线将一对相同的 ...
- HRBUST 1214 方格取数
方格取数 Time Limit: 1000ms Memory Limit: 65535KB This problem will be judged on HRBUST. Original ID: 12 ...
- 纪录:Solr6.4.2+Flume1.7.0 +morphline+kafka集成
当前大多数企业版hadoop的solr版本都还停留在solr4.x,由于这个版本的solr本身的bug较多,使用起来会出很多奇怪的问题.如部分更新日期字段失败的问题. 最新的solr版本不仅修复了以前 ...