River
题号:NC13949
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

在你面前有n条河,这n条河一条接着一条,并且相邻两条河之间的距离可以忽略不计。这些河都是从南往北流的。现在你站在最西边的河边,你想要游到最东边。第i条河的流速为v[i] m/s,宽w[i] m。你游泳的速度是u m/s。现在你一共有t秒的时间游泳。请问你最远能游到距离出发点多远的地方?注意你一定要游过所有的河。

输入描述:

第一行三个整数n,u,t表示河的数量,游泳的速度和时间。 接下来n行,每行两个整数w[i], v[i]表示河的宽度和流速。

输出描述:

如果游不过所有的河,输出-1。 否则输出两行。 第一行表示你能游到离出发点多远的地方。 第二行n个数,每个数字通过空格隔开,结尾无空格,表示每条河你游的时间。 要求保留三位小数。
示例1

输入

复制
2 1 6
1 1
2 1

输出

复制
11.591
2.000 4.000

备注:

对于10%的数据,n≤1;  对于30%的数据,n≤2; 对于40%的数据,n≤3;  对于50%的数据,n≤5; 对于100%的数据,n≤50, 1≤u,t,w[i],v[i]≤1000。