Ідеї розв'язання задач 1 туру Задача t1z1. Хоч і сказано в умові задачі, що в рядку записано число, та при введенні зі стандартного потоку число може бути розпізнане і прочитане як текст, тому значна частина учасників зчитувала вхідне число відразу в рядок, уникаючи зайвого перетворення процедурою str. Далі справа була за малим: перевірити чи рядок є паліндромом. Другий рік поспіль на заочній олімпіаді дається задача на зчитування даних (доки вони є) зі стандартного потоку, і нажаль, не всі учасники правильно організували зчитування даних. Все просто: while not eof do begin ... readln (s) ; ... end; Не всі учасники правильно оцінили типи величини (обмежень в задачі не було), тому частина тестів з результатами типу longint не проходили. Задача t1z2. Розв'язавши першу задачу вже Ви мали половину розв'язку даної. Єдине, що варто було перебирати лише непарні числа, адже всі парні у двійковому записі мають останньою цифрою 0. Отже, доповнивши розв'язок першої задачі процедурою переведення десяткового числа в двійкове, та правильне визначення меж відрізка пошуку, могли б забезпечити успішне проходження тестів. І знову оцінювання типів величин, якщо n<50000, то 2n<100000, що вимагає використання довгих цілих чисел. Задачі t1z3 і t1z4 були на динамічне програмування. Для задачі t1z3 авторський алгоритм виконує O(n^3) операцій, де n - довжина вхідного рядка. Задачу t1z4 можна розв'язати алгоритмом зі складністю O(n^2). Для цього потрібно спочатку побудувати матрицю Pal таку, що Pal[i,j]=true, якщо підрядок з i-го по j-ий символ є паліндромом, в іншому випадку Pal[i,j]=false. Це теж можна було здійснити методом динамічного програмування.