Регистрация
2 Дек 2012
Сообщения
71
Репутация
0
Спасибо
0
Монет
0
Три спички

Вдоль прямой выложены три спички. Необходимо переложить одну из них так, чтобы при поджигании любой спички сгорали все три. Для того чтобы огонь переходил с одной спички на другую, необходимо чтобы эти спички соприкасались (хотя бы концами).



Требуется написать программу, определяющую, какую из трех спичек необходимо переместить.



Формат ввода



Вводятся шесть целых чисел : l₁, r₁, l₂, r₂, l₃, r₃ – координаты первой, второй и третьей спичек соответственно (0 ≤ lᵢ < rᵢ ≤ 100). Каждая спичка описывается координатами левого и правого концов по горизонтальной оси OX.



Формат вывода



Выведите номер искомой спички. Если возможных ответов несколько, то выведите наименьший из них (наименьший по номеру спички). В случае, когда нет необходимости перемещать какую-либо спичку, выведите 0. Если же требуемого результата достигнуть невозможно, то выведите -1.



Sample Input:



0

2

4

5

3

6

Sample Output:



1
 
#include <iostream>
using namespace std;

int main() {
int l[3], r[3];
for (int i = 0; i < 3; i++) {
cin >> l >> r;
}
// проверяем, можно ли раздвинуть спички 1 и 2
if (r[0] <= l[1]) {
// перекладываем спичку 2 влево
cout << "2" << endl;
} else if (r[1] <= l[0]) {
// перекладываем спичку 1 вправо
cout << "1" << endl;
} else {
// проверяем, можно ли раздвинуть спички 2 и 3
if (r[1] <= l[2]) {
// перекладываем спичку 2 вправо
cout << "2" << endl;
} else if (r[2] <= l[1]) {
// перекладываем спичку 3 влево
cout << "3" << endl;
} else {
// проверяем, можно ли раздвинуть спички 1 и 3
if (r[0] <= l[2]) {
// перекладываем спичку 1 влево
cout << "1" << endl;
} else if (r[2] <= l[0]) {
// перекладываем спичку 3 вправо
cout << "3" << endl;
} else {
// невозможно достичь требуемого результата
cout << "-1" << endl;
}
}
}
return 0;
}
 
#include
#include
#include
#include

using namespace std;

int main() {
// Создание массива координат и его ввод
array arr;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 2; ++j) {
cin >> arr[j];
}
arr[2] = i + 1; // вместе с координатами сохраняем номер спички
}

// Сортировка спичек по координате левого конца
sort(arr.begin(), arr.end(),
[](array a, array b) { return a[0] < b[0]; });

// Отдельная проверка - перекладывать не надо
if (arr[0][1] >= arr[1][0] && max({arr[0][1], arr[1][1]}) >= arr[2][0]) {
cout = arr[2][0] - arr[1][1]) { mov.insert(arr[0][2]); }
if (arr[2][1] - arr[2][0] >= arr[1][0] - arr[0][1]) { mov.insert(arr[2][2]); }

// Вывод результатов
cout
 
#include
using namespace std;
int main(){
int l1,r1,l2,r2,l3,r3,d1,d2,d3;
coutl1>>r1>>l2>>r2>>l3>>r3;
if(0
 
Назад
Сверху