UVA 10995 - Educational Journey(数论)

时间:2014-04-27 19:23:24   收藏:0   阅读:502

题意:10995 - Educational Journey

题意:给定A遇到C,M,D的时刻和D遇到C,M的时刻,求C遇到M的时刻
思路:先把时间都处理成秒,然后从A遇到C后,从该点出发,A遇到D和C遇到D,就能求出速度Va和Vc之间的关系,由A遇到M后,从该点出发,A遇到D和M遇到D可以推出Va和Vm的关系,从而推出Vc和Vm的关系,然后由C和M遇到点出发,C遇到D和M遇到D的时间可以算,然后又有速度关系,就可以推出他们相遇时间
代码:
#include <stdio.h>
#include <string.h>

double t1, t2 ,t3 ,t4, t5;

bool read(double &t) {
	double h, m, s;
	if (scanf("%lf:%lf:%lf", &h, &m, &s) != 3 || h < 0) return false;
	t = h * 3600 + m * 60 + s;
	return true;
}

int main() {
	while (read(t1)) {
		read(t2); read(t3); read(t4); read(t5);
		double k = (t5 - t2) * (t3 - t1) / (t4 - t1) / (t3 - t2);
		int t = (int)((t4 * k - t5) / (k - 1) + 1e-6 + 0.5);
		printf("%02d:%02d:%02d\n", t / 3600, t % 3600 / 60, t % 3600 % 60);
	}
	return 0;
}


UVA 10995 - Educational Journey(数论),码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!