fork download
  1. #include <iostream>
  2. #include <math.h>
  3. int main()
  4. {
  5. double v0, v1, v3, place, ss, s1, s2, s3, time, t1, t2, t3 ; //Описание переменных для хранения входных данных.//
  6. scanf("%lf%lf%lf%lf%lf%lf", & v0, & v1, & v3, & s1, & s2, & s3) ; //Чтение из стандартного потока ввода.//
  7. if ( ( v0 > 0 ) && ( v1 > 0 ) && ( v3 > 0 ) && ( s1 >= 0 ) && ( s2 >= 0 ) && ( s3 >= 0 ) ) //Критерии ввода данных.//
  8. {
  9. s1 *= 0.001 ; v1 *= 0.001 ; s2 *= 0.001 ; s3 *= 0.001 ; //Перевод единиц в систему СИ. (м --> км, м/час --> км/час) //
  10. ss = s1 + s2 + s3 ; //Найдем весь путь//
  11. t1 = s1 / v1 ; t2 = s2 / v0 ; t3 = s3 / v3 ; //Найдем время за которое второй путник преодолевает каждую часть пути//
  12. if ( ( ss - t1 * v0 - s1 ) <= 0 ) //Условие встречи двух путников на первом промежутке пути//
  13. {
  14. time = ss / ( v0 + v1 ) ; //Нахождение времени встречи//
  15. place = time * v0 ; //Нахождение места встречи//
  16. printf("Путники встретились на расстоянии %5.3lf км от пункта В через %5.3lf часов после старта", place, time) ; //Вывод конечного результата.//
  17. }
  18. else
  19. {
  20. if ( ( ss - ( t2 + t1 ) * v0 - s1 - s2 ) <=0 ) //Условие встречи двух путников на втором промежутке пути//
  21. {
  22. time = ( ss - s1 - ( v0 * t1 ) ) / ( v0 + v0 ) ; //Нахождение времени встречи//
  23. place = ( t1 + time ) * v0 ; //Нахождение места встречи//
  24. printf("Путники встретились на расстоянии %5.3lf км от пункта В через %5.3lf часов после старта", place, time+t1) ; //Вывод конечного результата.//
  25. }
  26. else
  27. {
  28. if ( ( ss - ( t2 + t1 + t3 ) * v0 - s1 - s2 - s3 ) <= 0 ) //Условие встречи двух путников на третем промежутке пути//
  29. {
  30. time = ( ss - s1 - s2 - ( v0 * ( t2 + t1 ) ) ) / ( v0 + v3 ) ; //Нахождение времени встречи//
  31. place = ( t1 + t2 + time ) * v0 ; //Нахождение места встречи//
  32. printf("Путники встретились на расстоянии %5.3lf км от пункта A через %5.3lf часов после старта", place, time+t1+t2) ; //Вывод конечного результата.//
  33. }
  34. }
  35. }
  36. }
  37. else
  38. {
  39. printf("Неправильно введены данные"); //Вывод оповещения о неправильном вводе данных (при несоответствии начальным критериям).
  40. }
  41. return 0;
  42. }
Success #stdin #stdout 0s 3344KB
stdin
10 5000 60 10000 60000 30000
10 2222 3333 0 -4444 11.6
-300	30000	23333	22222	5454 555.1
8 5000 30 10000 10000 80000
40 15000 10 20000 40000 40000
stdout
Путники встретились на расстоянии 55.000 км от пункта В через 5.500 часов после старта