• Даю 100 баллов Программирование, сделать задачу на С++ У вас есть стол, у которого есть 4 ножки, длины которых вам даны. Вы хотите сделать ножки равной длины, для этого вы отпилите d от каждой ножки (т.е. вам будет дано 4 числа, каждое из которых будет означать отпил от ответной ножки стола). Если во время отпиливания самая длинная ножка стола будет в 2 раза больше, чем самая маленькая ножка – стол перевернется, но отпиливать ножки это вам не помешает. То есть, если h max >= 2 h min то стол переворачивается. Внимание, это может произойти и между началом и концом отпиливания, например, когда отпиливают 2, но еще не успеют отпилить третью ножку. Также мы считаем, что перед отпиливанием стол не перевернется. Ваша задача сказать после всех манипуляций стол будет целый и параллельный полу. Если длина, которую отрежут, будет больше длины ножки - вам нужно вывести ERROR. Внимание! Даже если стол перевернется – вы все равно отпиливаете ножки и можете получить ERROR. Input 4 целых числа h1,2,3,4 – длины ножек стола 4 целых числа d1,2,3,4 – длина, которую отпиливают от соответствующей ножки Output YES – если стол будет стоять параллельно плоскости пола и длина наименьшей ножки не будет равна нулю. ERROR - в случае если вы отпилите большую длину, чем имеет ножка NO – в других случаях Constraints: 0≤h1,2,3,4≤10^12 0≤d1,2,3,4≤10^12 Samples: (Примеры ввода значений для задачи) Input (stdin): 10 10 10 10 1 1 1 1 Output (stdout): YES Input (stdin): 2147483648 1 1 1 1 1 1 1 Output (stdout): NO Input (stdin): 10 10 10 10 11 1 1 1 Output (stdout): ERROR Notes: Во втором случае после первого отпиливания длина самой длинной ножки будет 10, а наименьшей 5 (5<=10/2) – стол перевернется. В третьем случае мы пытаемся отпилить длину 11 от ножки, имеющей длину 10

Ответы 1

  • #include int main() { long long h[4], d[4]; // Input lengths of legs for (int i = 0; i < 4; ++i) { std::cin >> h[i]; } // Input lengths to be cut for (int i = 0; i < 4; ++i) { std::cin >> d[i]; } // Process cuts for (int i = 0; i < 4; ++i) { // Check if cut length is greater than leg length if (d[i] > h[i]) { std::cout << "ERROR" << std::endl; return 0; } // Update leg length after the cut h[i] -= d[i]; } // Check if the table will be parallel if ((h[0] >= 2 * h[1] || h[1] >= 2 * h[0]) && (h[2] >= 2 * h[3] || h[3] >= 2 * h[2])) { std::cout << "NO" << std::endl; } else { std::cout << "YES" << std::endl; } return 0;}
    • Автор:

      beauecqg
    • 1 год назад
    • 4
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years