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. String类面试坑题

    1.面试坑题F:\SHJT\JavaWorkspace\JavaSE\workspace\day13ezra\src\cn\itcast\sh\classcode\BTStringLastIndexO ...

  2. (转)C#开发微信门户及应用(2)--微信消息的处理和应答

    http://www.cnblogs.com/wuhuacong/p/3614175.html 微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习 ...

  3. 题解 P2605 【[ZJOI2010]基站选址】(From luoguBlog)

    线段树优化dp 数组f[i][j]表示在前i个村庄内,第j个基站建在i处的最小费用 根据交线牛逼法和王鹤松式可得方程 f[i][j]=min(f[k][j−1]+cost(k,i)) cost(k,i ...

  4. webpack学习(三)

    前篇:webpack学习(二) jquery不需要在项目中自己下载,而是作为一个模块引入.jquery的存放路径是在 node_modules目录下.1.首先给项目安装jquery,npm insta ...

  5. PAT_A1155#Heap Paths

    Source: PAT A1155 Heap Paths (30 分) Description: In computer science, a heap is a specialized tree-b ...

  6. loadrunner安装方法

    1.loadrunner安装网盘地址:  http://pan.baidu.com/s/1hrP6mDQ 一般会提示:“vc2005_sp1_with_atl_fix_redist 2.确认时提示缺少 ...

  7. 01 c++常见面试题总结

    https://www.cnblogs.com/yjd_hycf_space/p/7495640.html   C++常见的面试题 http://c.tedu.cn/workplace/217749. ...

  8. 洛谷P1101 单词方阵【DFS】

    给一n \times nn×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向 ...

  9. Python 爬虫的代理 IP 设置方法汇总

    本文转载自:Python 爬虫的代理 IP 设置方法汇总 https://www.makcyun.top/web_scraping_withpython15.html 需要学习的地方:如何在爬虫中使用 ...

  10. python第十周:进程、协程、IO多路复用

    多进程(multiprocessing): 多进程的使用 multiprocessing是一个使用类似于线程模块的API支持产生进程的包. 多处理包提供本地和远程并发,通过使用子进程而不是线程有效地侧 ...