#include <iostream>
#include <vector>
using namespace std;
class Num {
int a;
int b;
int c;
int d;
int e;
int search() const {
const auto m = max();
for (auto n = 1; n < m; ++n) if (is_false(n)) return n;
return -1;
}
bool is_false(const int n) const {
auto first = !(a < n && n < b);
auto second = !(c <= n || n <= d);
auto third = !((~n & 1) && e < n);
return first && second && third;
}
int max() const {
if (a == c) return a;
return a < c ? c : a;
}
friend istream& operator>>(istream& inp, Num& n) {
return inp >> n.a >> n.b >> n.c >> n.d >> n.e;
}
friend ostream& operator<<(ostream& out, const Num& n) {
return out << n.search();
}
public:
Num() : a(0), b(0), c(0), d(0), e(0) {}
};
int main() {
size_t t;
cin >> t;
vector<Num> nums(t);
for (auto& num : nums) cin >> num;
for (const auto& num : nums) cout << num << '\n';
}
Это число больше A
и меньше B
;
Это число не больше C
или не меньше D
;
Это чётное число, и оно больше E
.
Все три утверждения ложны.
Требуется определить, какое наименьшее натуральное число могло быть загадано (или что такого числа не существует). Вам нужно найти ответ для нескольких наборов входных данных.
Входные данные
В первой строке входных данных вводится целое число T
— количество наборов входных данных (1≤T≤1000
).
В каждой из следующих T
строк вводятся через пробел пять целых чисел A
, B
, C
, D
, E
(0≤A,B,C,D,E≤109
).
Выходные данные
Для каждого набора входных данных выведите наименьшее натуральное число, которое могло быть загадано. Если таких чисел нет, то выведите -1.
Система оценки
Решения, работающие при T=1
и A,B,C,D,E≤100
, будут оцениваться из 40 баллов.