C/C++

Нужен готовый код по C++

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

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

Формат ввода

Вводятся шесть целых чисел : 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 
#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[i][j];
}
arr[i][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[1][1] - arr[1][0] >= arr[2][0] - arr[0][1]) { mov.insert(arr[1][2]); }
if (arr[2][1] - arr[2][0] >= arr[1][0] - arr[0][1]) { mov.insert(arr[2][2]); }

// Вывод результатов
cout
СР
Степан Рыбаков
93 622
Лучший ответ
 #include  
using namespace std;
int main(){
int l1,r1,l2,r2,l3,r3,d1,d2,d3;
coutl1>>r1>>l2>>r2>>l3>>r3;
if(0
Илья Шкоденко ошибка не рабочий
Дмитрий Вохмянин какой and какой or?
Тут есть && и ||
Куаныш Изтлеуов Поскольку я просто переписал эту программу с другого языка, я не стал возиться с заменой бывших там and и or на более привычные && и ||, хотя и это несложно :)
#include <iostream>
using namespace std;

int main() {
int l[3], r[3];
for (int i = 0; i < 3; i++) {
cin >> l[i] >> r[i];
}
// проверяем, можно ли раздвинуть спички 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;
}
Илья Шкоденко не рабочий
Дмитрий Башурин using namespace std;

int main() {
int l[3], r[3];
for (int i = 0; i < 3; i++) {
cin >> l[i] >> r[i];
}
if (r[0] <= l[1])
cout << "2" << endl;
} else if (r[1] <= l[0]) {
cout << "1" << endl;
} else {
if (r[1] <= l[2]) {
cout << "2" << endl;
} else if (r[2] <= l[1]) {
cout << "3" << endl;
} else {
if (r[0] <= l[2]) {
cout << "1" << endl;
} else if (r[2] <= l[0])
cout << "3" << endl;
} else {
cout << "-1" << endl;
}
}
}
return 0;
}
Илья Шкоденко не рабочий