Вступ
У цьому виклику ваше завдання - правильно перелічити відмінки двох фінських іменників. Поворот полягає в тому, що ви можете використовувати один із списків як керівництво для створення іншого.
Іменники
Ми використовуємо наступні дві таблиці відмінювання як наші дані. Вони перераховують відмінки двох іменників, один відмінок на рядок у тому ж порядку, що і у згаданій вище статті Вікіпедії, у формі однини: множина, де це можливо.
Таблиця 1: Шафи яєць ("двері")
ovi : ovet
oven : ovien
oven : ovet
ovea : ovia
ovessa : ovissa
ovesta : ovista
oveen : oviin
ovella : ovilla
ovelta : ovilta
ovelle : oville
ovena : ovina
oveksi : oviksi
ovin
ovetta : ovitta
ovine
Таблиця 2: Випадки жалки ("стопи")
jalka : jalat
jalan : jalkojen
jalan : jalat
jalkaa : jalkoja
jalassa : jaloissa
jalasta : jaloista
jalkaan : jalkoihin
jalalla : jaloilla
jalalta : jaloilta
jalalle : jaloille
jalkana : jalkoina
jalaksi : jaloiksi
jaloin
jalatta : jaloitta
jalkoine
Завдання
Ваше завдання - написати дві програми f
і g
(можливо, з різними іменами), які беруть один рядок як вхідний, дають один рядок як вихідний і мають таке властивість. Якщо Таблиця 1 задана f
як вхідна, вона виводить Таблицю 2, а якщо надана Таблиця 2 g
, виводить Таблицю 1. Усі інші входи призводять до невизначеної поведінки. Таблиці повинні відображатися точно так, як зазначено вище, і в вхідному, і у вихідному. Ви необов'язково можете припустити, що існує новий проміжний рядок, але тоді він повинен використовуватися в обох таблицях, і в вході, і у виході. Немає попереднього нового рядка.
Правила та бонуси
Ви можете писати f
і g
як функції, або повноцінні програми, але вони повинні бути одного типу, і вони повинні бути повністю окремими (якщо ви пишете допоміжну функцію для цього f
, ви повинні переписати її, g
якщо ви хочете використовувати її там) . Виграє найменший загальний кількість байтів, а стандартні лазівки заборонені.
Існує бонус -25% за невикористання регулярних виразів.
Деякі роз'яснення
Цілком чудово написати функцію / програму, f
яка ігнорує її введення та завжди повертає Таблицю 2, та функцію / програму, g
яка завжди повертає Таблицю 1. Потрібно лише те, що і ; поведінка та на всіх інших входах не має значення.f(Table 1) == Table 2
g(Table 2) == Table 1
f
g
"Повністю відокремлена" частина означає наступне. Ваша відповідь містить два фрагменти коду, один f
і один g
, бажано в різних полях коду. Якщо я поміщую код f
у файл і запускаю його, він працює і те саме для g
. Ваш бал - це сума байт двох частин коду. Будь-який дублюваний код рахується двічі.
f
якості вхідних даних»
if Table 1 is given `f` as input
Як можна ввести функцію в таблицю? Я не розумію цієї частини