#include <iostream>
#include <vector>
#include <fstream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
bool is_three_digit(int n) {
n = abs(n);
return n >= 100 && n <= 999;
}
bool is_two_digit(int n) {
n = abs(n);
return n >= 10 && n <= 99;
}
int main() {
ifstream file("17.txt"); // Убедись, что имя файла совпадает
vector<int> a;
int val;
// Считываем все числа из файла
while (file >> val) {
a.push_back(val);
}
// 1. Находим максимальный двузначный элемент, оканчивающийся на 3
int max_2_3 = -200000;
bool found_max = false;
for (int x : a) {
if (is_two_digit(x) && abs(x) % 10 == 3) {
if (x > max_2_3) {
max_2_3 = x;
found_max = true;
}
}
}
long long limit = (long long)max_2_3 * max_2_3;
int count = 0;
long long max_sum_abs = -1;
// 2. Проверяем тройки (три идущих подряд элемента)
for (size_t i = 0; i < a.size() - 2; ++i) {
int x = a[i];
int y = a[i+1];
int z = a[i+2];
// Условие 1: Все числа отрицательны
bool all_negative = (x < 0 && y < 0 && z < 0);
// Условие 2: Ни одно число не является трёхзначным
bool none_three_digit = (!is_three_digit(x) && !is_three_digit(y) && !is_three_digit(z));
// Условие 3: Сумма модулей min и max элементов тройки <= квадрату max_2_3
int min_val = min({x, y, z});
int max_val = max({x, y, z});
long long current_sum_abs = abs(min_val) + abs(max_val);
if (all_negative && none_three_digit && (current_sum_abs <= limit)) {
count++;
if (current_sum_abs > max_sum_abs) {
max_sum_abs = current_sum_abs;
}
}
}
cout << count << " " << max_sum_abs << endl;
return 0;
}