Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.56 KB | None | 0 0
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. //#include <vector>
  4. //#include <map>
  5. //#include <string>
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.     int n, v, l;// количество инспекторов, скорость машины, расстояние
  12.     cin >> n >> v >> l;
  13.     int m[n][5];//массив для хранения инспекторов
  14.     //вводим инспекторов и заносим каждого из них в свою ячейку
  15.     for (int i = 0; i < n; i++)
  16.     {
  17.         double xi, ti;
  18.         cin >> xi >> ti;
  19.         m[i][0] = xi;
  20.         m[i][1] = ti;
  21.     }
  22.     //сортируем массив инспекторов по расстоянию от точки старта
  23.     for (int i = 0; i < n; i++)
  24.     {
  25.         for (int j = 0; j < n; j++)
  26.         {
  27.             if (m[i][0] < m[j][0])
  28.             {
  29.                 double r = m[j][0];
  30.                 m[j][0] = m[i][0];
  31.                 m[i][0] = r;
  32.             }
  33.         }
  34.     }
  35.     double koord = 0, time = 0; //переменная-кордината, помогает в рассчетах,
  36.     //с ее помощью узнаем сколько прошло тело от последней остановки, и счетчик времени
  37.     for (int i = 0; i < n; i++)
  38.     {
  39.         //cout << i << ") " << time << " "; //проверяем время изначально
  40.         time += m[i][1]; //прибавляем время, но которое задержал инспектор машину
  41.         time += (m[i][0] - koord) / v * 60; //прибавляем время, за которое машиина прошла расстояние от предыдущего инспектора до этого
  42.         //cout << (m[i][0] - koord) / v * 60 << " "; //проверяем, что у нас выводит эта формула
  43.         koord = m[i][0]; //задаем новую координату
  44.         if (i == n - 1) //если машина проехала последнего инпектора и больше их не встретит
  45.             {
  46.             time += (l - koord) / v * 60;
  47.             //cout << endl << i + 1 << ") " << (l - koord) / v * 60 << " "; //проверка вывода
  48.             }
  49.         //cout << time << " " << endl; //проверяем время в конце
  50.     }
  51.     /*for (int i = 0; i < n; i++) //проверка массива с инспекторами
  52.     {
  53.         cout << m[i][0] << " " << m[i][1] << endl;
  54.     }*/
  55.     printf("%.2f", time); //выод ответа
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement