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 V1V2V3Vm(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的更多相关文章

  1. CodeForces - 907A Masha and Bears

    A. Masha and Bears time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. Masha and Bears(翻译+思维)

    Description A family consisting of father bear, mother bear and son bear owns three cars. Father bea ...

  3. Codeforces Round #454 Div. 2 A B C (暂时)

    A. Masha and bears 题意 人的体积为\(V\),车的大小为\(size\),人能钻进车的条件是\(V\leq size\),人对车满意的条件是\(2V\geq size\). 现知道 ...

  4. Codeforces Round #454

    Masha and Bears Tic-Tac-Toe Shockers Seating of Students Party Power Tower Reverses

  5. codeforces 653D D. Delivery Bears(二分+网络流)

    题目链接: D. Delivery Bears time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  6. codeforces 887B Cubes for Masha 两种暴力

    B. Cubes for Masha time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  7. 【cf789B】Masha and geometric depression(分类讨论/暴力)

    B. Masha and geometric depression 题意 在黑板上写数列,首项是b,公比是q,超过l时就停止不写.给定m个数,遇到后跳过不写.问一共写多少个数,如果无穷个输出inf. ...

  8. 寒假集训——搜索 D - Cubes for Masha

    #include <stdio.h> #include <stdlib.h> #include <iostream> #include <string.h&g ...

  9. 524 (Div. 2) Masha and two friends

    Codeforces Round #524 (Div. 2) C. Masha and two friends 题目链接 题意:较为简单,初始给定这个白黑相交的格子,第一遍把坐标范围内的全部涂白,第二 ...

随机推荐

  1. C++:C++在图片特定区域之外产生随机数

    参考原文:C++产生随机数 (整数) C++在图片特定区域之外产生随机数,避开正则表达式,可以分为两种情况. 第一种:在某个数之前生成随机数:第二种,生成随机数,加上某个数,然后截断:第三种,指定范围 ...

  2. Tinyxml2学习

    转自http://www.360doc.com/content/13/1223/16/3684846_339528825.shtml,尊重原文 什么是XML? XML全称EXtensible Mark ...

  3. LINQ to Entities 不识别方法“System.Nullable`1[System.Int32] DiffDays(System.Nullable`1[System.DateTime], System.Nullable`1[System.DateTime])”,因此该方法无法转换为存储表达式。

    解决方案: db.table.Where(m=>System.Data.Objects.EntityFunctions.DiffDays(m.CreateTime, DateTime.Now) ...

  4. (转)Jetty实战之 安装 运行 部署

    http://blog.csdn.net/kongxx/article/details/7218767 本文地址:http://blog.csdn.NET/kongxx/article/details ...

  5. 【转载】java的常见类型转换

    //Int型数字转换成String int num1=123456; //方法1 String str1=num1+""; System.out.println(str1); // ...

  6. Lua的string库函数、lua中string的模式匹配

    --****************Lua的string库函数****************** --1.string.byte --string.byte (s [, i [, j]]) --取出 ...

  7. css画圆

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  8. python爬虫08 | 你的第二个爬虫,要过年了,爬取豆瓣最受欢迎的250部电影慢慢看

    马上就要过年啦 过年在家干啥咧 准备好被七大姑八大姨轮番「轰炸」了没? 你的内心 os 是这样的 但实际上你是这样的 应付完之后 闲暇时刻不妨看看电影 接下来咱们就来爬取豆瓣上评分最高的 250部电影 ...

  9. 数据持久层(DAO)通用API的实现

    在Web开发中,一般都分3层.Controller/Action 控制层,Service/Business 服务层/业务逻辑层,Dao 数据访问层/数据持久层. 在学习和工作的实践过程中,我发现很多功 ...

  10. 【学习笔记】关于最大公约数(gcd)的定理

    手动博客搬家: 本文发表于20181004 00:21:28, 原地址https://blog.csdn.net/suncongbo/article/details/82935140 结论1 \[\g ...