Помогите у меня проблема с неправильным ответом
Давайте посмотрим на вопрос.
Вы смотрите на поэтажный план нового здания Летней Школы информатики. Вам было поручено заниматься логистикой SIS, поэтому вы действительно заботитесь о времени в пути между различными местами: важно знать, сколько времени потребуется, чтобы добраться из лекционного зала в столовую или из спортзала в серверную комнату.
Здание состоит из башни н ч этажей, где башни пронумерованы от 1 до n, полы имеют маркировку от 1 до H. Существует проход между любыми двумя соседними башнями (две башни i и i + 1 для всех i: 1 ≤ i ≤ n - 1) на каждом этаже x, где a ≤ x ≤ b. Требуется ровно одна минута, чтобы пройти между любыми двумя соседними этажами башни, а также между любыми двумя соседними башнями, при условии, что на этом этаже есть проход. Покидать здание не разрешается.
Вы дали K пар точек (та, ФА), (ТБ, ФБ): ФА этаж башни та и пол ФБ башни ТБ. Для каждой пары нужно определить минимальное время ходьбы между этими локациями.
Ввод
Первая строка входных данных содержит следующие целые числа:
n: количество башен в здании (1 ≤ n ≤ 108),
h: количество этажей в каждой башне (1 ≤ h ≤ 108),
a и b: самый низкий и самый высокий этаж, где можно перемещаться между соседними башнями (1 ≤ a ≤ b ≤ h),
k: общее количество запросов (1 ≤ k ≤ 104).
Следующие k строк содержат описание запросов. Каждое описание состоит из четырех целых чисел ta, fa, tb, fb (1 ≤ ta, tb ≤ n, 1 ≤ fa, fb ≤ h). Это соответствует запросу на поиск минимального времени в пути между fa-м этажом та-й башни и fb-м этажом ТБ-й башни.
Выход
Для каждого запроса выведите одно целое число: минимальное время ходьбы между точками в минутах.
Я был создан с помощью c++
в одном вопросе это правда,,
но в двух вопросах это ложь,,
Пример
Ввод
3 6 2 3 3
1 2 1 3
1 4 3 4
1 2 2 3
Выход
1
4
2
Что я уже пробовал:
#include <iostream> using namespace std; int main() { int z = 0; int tower; int floorr; int lowfloor; int highfloor; int queries; cin >> tower; cin >> floorr; cin >> lowfloor; cin >> highfloor; cin >> queries; int arr[queries*4]; for(int i = 0; i < queries*4; i++) { cin >> arr[i]; } for(int i = 0; i < queries; i++) { if(arr[z] == arr[z+2]) { if(arr[z+1] < arr[z+3]) { cout << arr[z+3] - arr[z+1] << endl; } } else if(arr[z] < arr[z+2]) { if(arr[z+1] <= lowfloor) { if(arr[z+3] >= lowfloor) { cout << lowfloor - arr[z+1] + arr[z+2] - arr[z] + arr[z+3] - lowfloor << endl; } else if(arr[z+3] < lowfloor) { cout << lowfloor - arr[z+1] + arr[z+2] - arr[z] + lowfloor - arr[z+3] << endl; } } else if(arr[z+1] > lowfloor && arr[z+1] < highfloor) { if(arr[z+1] < arr[z+3]) { cout << arr[z+2] - arr[z] + arr[z+3] - arr[z+1] << endl; } else if(arr[z+1] > arr[z+3]) { cout << arr[z+2] - arr[z] + arr[z+1] - arr[z+3] << endl; } } else if(arr[z+1] >= highfloor) { if(arr[z+3] > highfloor) { cout << arr[z+1] - highfloor + arr[z+2] - arr[z] + arr[z+3] - highfloor << endl; } else if(arr[z+3] < highfloor) { cout << arr[z+1] - highfloor + arr[z+2] - arr[z] + highfloor - arr[z+3] << endl; } } } else if(arr[z] > arr[z+2]) { if(arr[z+1] <= lowfloor) { if(arr[z+3] >= lowfloor) { cout << lowfloor - arr[z+1] + arr[z] - arr[z+2] + arr[z+3] - lowfloor << endl; } else if(arr[z+3] < lowfloor) { cout << lowfloor - arr[z+1] + arr[z] - arr[z+2] + lowfloor - arr[z+3] << endl; } } else if(arr[z+1] > lowfloor && arr[z+1] < highfloor) { if(arr[z+1] < arr[z+3]) { cout << arr[z] - arr[z+2] + arr[z+3] - arr[z+1] << endl; } else if(arr[z+1] > arr[z+3]) { cout << arr[z] - arr[z+2] + arr[z+1] - arr[z+3] << endl; } } else if(arr[z+1] >= highfloor) { if(arr[z+3] > highfloor) { cout << arr[z+1] - highfloor + arr[z] - arr[z+2] + arr[z+3] - highfloor << endl; } else if(arr[z+3] < highfloor) { cout << arr[z+1] - highfloor + arr[z] - arr[z+2] + highfloor - arr[z+3] << endl; } } } z = z + 4; } return 0; }
Patrice T
Описать проблемы. с более подробной информацией.
Member 13906640
Я не знаю, где находится неправильная часть моего сценария, поэтому я хочу спросить Здесь, что не так с моим сценарием :(
Patrice T
Опишите, как результат неверен.
KarstenK
Вам нужно отладить код. Начните с предоставления некоторого вывода шагов вычисления.
Ваш код не компилируется!!!