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; }
评论(0)