Хто той покемон?


33

Вхід: ціле число N між 1 і 151

Вихід: N-й Покемон.

Правила

  • Ви можете використовувати один файл даних.

  • Ви не можете використовувати жодні вже зроблені алгоритми декомпресії даних. Сюди входять бібліотеки та інші програми.

  • Ваша програма може не мати доступу до інших файлів, окрім себе, та до файлу даних.

Оцінка балів

Ваш бал - це сума довжини коду та файлу даних.

Корисні речі

Ось список перших 151 покемонів, розділених крапками з комою, що допоможе вам створити файл даних. Вихід повинен точно відповідати N-му запису цього рядка:

Bulbasaur;Ivysaur;Venusaur;Charmander;Charmeleon;Charizard;Squirtle;Wartortle;Blastoise;Caterpie;Metapod;Butterfree;Weedle;Kakuna;Beedrill;Pidgey;Pidgeotto;Pidgeot;Rattata;Raticate;Spearow;Fearow;Ekans;Arbok;Pikachu;Raichu;Sandshrew;Sandslash;Nidoran (f);Nidorina;Nidoqueen;Nidoran (m);Nidorino;Nidoking;Clefairy;Clefable;Vulpix;Ninetales;Jigglypuff;Wigglytuff;Zubat;Golbat;Oddish;Gloom;Vileplume;Paras;Parasect;Venonat;Venomoth;Diglett;Dugtrio;Meowth;Persian;Psyduck;Golduck;Mankey;Primeape;Growlith;Arcanine;Poliwag;Poliwhirl;Poliwrath;Abra;Kadabra;Alakazam;Machop;Machoke;Machamp;Bellsprout;Weepinbell;Victreebell;Tentacool;Tentacruel;Geodude;Graveler;Golem;Ponyta;Rapidash;Slowpoke;Slowbro;Magnemite;Magneton;Farfetch'd;Doduo;Dodrio;Seel;Dewgong;Grimer;Muk;Shellder;Cloyster;Gastly;Haunter;Gengar;Onix;Drowsee;Hypno;Krabby;Kingler;Voltorb;Electrode;Exeggute;Exeggutor;Cubone;Marowak;Hitmonlee;Hitmonchan;Lickitung;Koffing;Weezing;Rhyhorn;Rhydon;Chansey;Tangela;Kangaskhan;Horsea;Seadra;Goldeen;Seaking;Staryu;Starmie;Mr. Mime;Scyther;Jynx;Electabuzz;Magmar;Pinsir;Tauros;Magikarp;Gyarados;Lapras;Ditto;Eevee;Vaporeon;Jolteon;Flareon;Porygon;Omanyte;Omastar;Kabuto;Kabutops;Aerodactyl;Snorlax;Articuno;Zapdos;Moltres;Dratini;Dragonair;Dragonite;Mewtwo;Mew

Чи дозволено Bubblegum ?
PyRulez

@PyRulez Так, поки ви не використовуєте будь-яку з його вбудованих декомпресій даних. Тож удачі, зламавши SHA256.
cardboard_box

Якщо наша мова має вбудований для повернення списку покемонів, чи можемо ми використовувати його без додавання байтів?
caird coinheringaahing

@cairdcoinheringaahing Якщо ви говорите про вбудований pyke, я вважаю, що це суперечить духу виклику, проте я думаю, це все одно було б не конкуруючим.
FlipTack

Я щойно помітив цей виклик, написав відповідь, а потім помітив дату його проведення: P Я розчарований, що не зміг використати одну інакше марну функцію моєї мови
Blue

Відповіді:


8

J (93 + 787 = 880)

Редагувати: інший метод капіталізації, що використовує великі букви "Mr. Мім 'правильно.

Можливо, можна скоротити, я майже ніколи раніше не писав J. Це працює за аналогічним принципом, як приклад PHP.

Файл 'p' потрібен у тому самому каталозі, коли ви запускаєте цей файл, можна завантажити його з: http://frankenstein.dns.org.uk/p . Це 787 байт.

u:p-32*96<p*|.!.1[32=p=.(}.p#~(".1!:1[1)=+/\31=p=.#._5>\,#:a.i.1!:1<'p'){(97+i.26),a.i.'.()'' '

Файл кодується у п'ятибітному форматі таким чином:

0-25: A-Z
26: .
27: (
28: )
29: '
30: <space>
31: separator

Файл також починається з роздільника, щоб скласти список на основі 1.

J-код працює наступним чином:

  • (97+i.26),a.i.'.()'' ': рядок, де індекс N - символ ASCII
  • {: виберіть зі цього списку значення, згенеровані виразом нижче
  • 1!:1<'p': читати файл 'p'
  • ,#:a.i.: отримати файл у вигляді бітів
  • _5>\: згрупуйте біти по групах по п'ять
  • p=.#.: перетворити кожну групу бітів у число та призначити p
  • +/\31=p: список розмірів, pде кожне значення N означає, що значення на цій позиції в pналежить N-му покемону.
  • (".1!:1[1)=: прочитайте число з клавіатури і подивіться, де pзнаки для цього покемону.
  • }.p#~: перегляньте їх pі видаліть перший елемент (який є роздільником).
  • p-32*96<p*_1|.(!.1)32=p=.: Призначте результат pзнову і відніміть 32, pде pбільший за 96 та праворуч від пробілу. Що громіздко. Згідно з документацією на J повинна бути capitalizeфункція, але її немає в моїй системі.
  • u:: дивіться на них як на unicode.

1
Я берусь Ulbasaurза перший покемон. Я правильно його запускаю? Я ніколи раніше не використовував J. Також Mr. Mimeмає бути з великої літери.
cardboard_box

@cardboard_box: Я змінив метод написання великої літери так, щоб він Mr. Mimeпрацював (ціною 9 символів). У Ulbasaurфайлі даних була помилка помилки, яка також була виправлена.
marinus

Схоже, посилання мертва.
Ерік Аутгольфер

23

Баш 1182 символів

read n;echo {Bulba,Ivy,Venu}saur Char{mander,meleon,izard} {Squi,Warto}rtle Blastoise Caterpie Metapod Butterfree Weedle Kakuna Beedrill Pidge{y,otto,ot} Rat{tata,icate} {Sp,F}earow Ekans Arbok {Pika,Rai}chu Sands{hrew,lash} Nido{ran%\(f\),rina,queen,ran%\(m\),rino,king} Clefa{iry,ble} Vulpix Ninetales {Jigglyp,Wigglyt}uff {Zu,Gol}bat Oddish Gloom Vileplume Paras{,ect} Veno{nat,moth} Diglett Dugtrio Meowth Persian {Psy,Gol}duck Mankey Primeape Growlith Arcanine Poliw{ag,hirl,rath} {A,Kada}bra Alakazam Mach{op,oke,amp} Bellsprout {Weepin,Victree}bell Tentac{ool,ruel} Geodude Graveler Golem Ponyta Rapidash Slow{poke,bro} Magne{mite,ton} Farfetch\'d Dod{uo,rio} Seel Dewgong Grimer Muk {Shelld,Cloyst}er Gastly Haunter Gengar Onix Drowsee Hypno Krabby Kingler Voltorb Electrode Exeggut{e,or} Cubone Marowak Hitmon{lee,chan} Lickitung {Koff,Weez}ing Rhy{horn,don} Chansey Tangela Kangaskhan Horsea Seadra Goldeen Seaking Star{yu,mie} Mr.%Mime Scyther Jynx Electabuzz Magmar Pinsir Tauros Magikarp Gyarados Lapras Ditto Eevee {Vapore,Jolte,Flare,Poryg}on Oma{nyte,star} Kabuto{,ps} Aerodactyl Snorlax Articuno Zapdos Moltres Dra{tini,gon{air,ite}} Mew{two,}|tr %\  \ \\n|sed $n!d

3
Це дійсно класна ідея.
MrZander

17

PHP 919 (925) байт

Як і у відповіді Пітера Тейлора , я також не можу опублікувати своє рішення безпосередньо, тому замість цього я опублікую програму, яка його генерує :

<?php
$data = <<<EOD
PD9mb3IoJG89J5SWUHYPaY6dSs/pjsJBMS1pRDc1yZ3AUcQkNcnZsYIkJDXtpa4UB4mOMNH8zbDbcDhcKD
VYu89cFyjRlBm8GSjMiFSxCNHitpn8Kdi43B+XUkX2gVjN8LQEmEkF5D2zE9gbTD3z6djUJQAVFXwlXV/o
kVwnsV1rW5J9zpssN3JXdW5LjAS3DYTcBtV/YUdtoAfGC+ztsoc1LxQamD5lmQMaes37flJcGvg7CdkS+s
1bhZLjAQQtmL5tS3rN+2eS7LeROnX9nOCRRWhRQhFkBDSN0igwMUwem4BNYVrkxZuAzUEiRDG+KFODVqV0
KDAvpLM747wC0AwYUVkELsVsBA5vyThUQQtiKFRBK6EYnBC7oMiAkJtYbXOZk9scdPF3hTJEh7hhZ4yDEG
FHzJ1vSfxkDVkd8fz+u6ConHVH7Y3SHFtgq20M22ALpO40xMC9vmictX6lf+2VfqV1EBctRRwZ38RceT3E
G2l5PcTVTFahWEdGGYhjKSwy5lBYAn944VmhWNQRkvXDw5SAkpV/URm0SZPBOPweZUGwDlODERHEwt0VfK
X9WG+kp9tbe+d8oLvu1uw9+6ExyFwZe6LogoTF7oG3RCiUm0GTcJsmcyxJmdRR68Oi7P4NmQ6ZlwxE8djR
DtfANTjRZBOvWE281RLRDtPJY05E4k10BkvfCRwNLKssXh4GHB+SgBFEwsDbHsSxMdhmCBExsfvZKLzEEY
uZ26SXfutBOR1rezc8/XmT6HkcHciTBwTSxD1cJ+XBcmyjis2S7ClZLZJMTG2bngTs7VtCN3VSaQUAcuPQ
VR9yY0+ntSTcnhcdZ4n4JtzDwPHZJEl9pZJsONV96ad1jpV5eVhpldF8r7WcMeRd8hSxMXjVEcZEPZsdLg
SSd+4kNY7L7Bkbdy10VDVuJdtfGOyG7yydwJux2SFcAiz7QSIEa8BxAoQIFUFCRJt+G6KkoZ3d8fzBPZhO
xG2eaIwfvrGb54zZ7mgfGPA0Qp6I5NSund9SSw5MUD8M0wAmzywmSF2N/CZbw8V1JEZF42LIXJmLeIM5uU
wnOzc4OD4kbjspJGY9c3BsaXQonywkeC49Y2hyKDMxJiR2PSsrJGklOCUzPzgqJHZeb3JkKCRvWyRuKytd
KTokdj4+NSleiyk7ZWNob35zdHJ0cigkZlsrZmdldHMoU1RESU4pXXygLICEgYOCLNfY1tHfKTsNCg==
EOD;
print base64_decode($data);
?>

Зразок вводу / виводу:

$ php generator.php > out.php

$ echo 12 | php out.php
Butterfree

$ echo 32 | php out.php
Nidoran (m)

$ echo 83 | php out.php
Farfetch'd

$ echo 122 | php out.php
Mr. mime

$ echo 151 | php out.php
Mew

Як це працює (спойлер):

Цей код працює на спостереженні, що є лише 32 унікальні символи, включаючи роздільник - якщо ви не рахуєте великих літер. Це негайно передбачає кодування 5: 8; Для представлення кожного байту потрібно лише 5 біт.

Я виконую це таким чином:

++ $ i% 8% 3

Коли це значення не дорівнює нулю, зчитується новий байт, а коли нуль - наступний байт генерується з раніше прочитаних байтів. 3-й, 6-й та 8-й байти генеруються таким чином, а потім процес повторюється.

Відповідно слід розподіл бітів. Якщо ви, наприклад, хотіли створити рядок:

abcdefgh

Біти для кожного розподіляються між 5-ти вихідними байтами наступним чином:

hccaaaaa | cccbbbbb | hffddddd | fffeeeee | hhhggggg

Після генерації c залишається лише верхній біт h, після генерації f залишаються два верхніх біта h, і після зчитування g, h залишається в повному обсязі (я зберігаю кілька операцій зсуву, використовуючи замість них xored значення, наприклад значення, яке я завантажую для другого байта, - це значення, яке я хочу xor a << 3, але це суть його).

Це створює символи в діапазоні [0,31]. Шляхом кнотування будь-якого символу в діапазоні [96,127] всі символи будуть відображені в цей діапазон (я вибрав 116, оскільки це призвело до найменшої кількості послідовностей втечі). Після цього простий переклад 5 символів, які там не належать, відповідною їх заміною, а також написання великої літери на першому листі. Для цього коду потрібні три байти: з'єднання (раніше генерованого як такого) бітового перевернутого рядка з char 160, а потім біт інвертування назад. Невеликий застереження: другий м у 'Mr. mime 'не використовується з великої літери цим методом. Це можна було б виправити, замінивши описаний вище метод функцією ucwords (), вартістю 6 байт, в результаті чого довжина коду становила 925 замість 919.


7

GolfScript (1040 байт)

На жаль, я не можу опублікувати програму безпосередньо, тому я надам посилання та текст, закодований base64:

fignACc1Nix7XFsxJF0nJysvXCdCdWxiNzYKSXZ5czY0dXM2CjJtMWQvMm0tZSsyaXozZCpxdSZ0
bCVXMyRydGwlQmw3JGlzJUMjMHBpImUhcB8KQnV0dDBmcmUlHmRsJUtha3VuYQpCZWVkHWxsG3kb
b3QkG290GiN0I2EaI2ljIyVTcGUzGQpGZTMZCkVrMXMYcmJvaxxpa2EXdRphaRd1KjFkc2hyZXcq
MWRzbDdoFWYpFnIUYRZxdWU1FW0pFnIUbxZrExEmeRFibCVWdWxwaXgKThRlIRJzCkoQcHVmZgpX
EHR1ZmYKWnViIw8OYiMKT2RkaXNoD2xvb20KVmkScGx1bSVQMzccMzdlY3Q0LCM0b21vdGgNaWcS
dHQNdWd0HW8MZRl0aBwwc2kxHHN5ZHVjaw8OZHVjawwxa2V5HB1tZQslR3IZbAloGHJjMRQlUAhh
ZxwIaCZsHAgHdGgYYgcGYWRhYgcYbGFrYXphbQUXb3AFF29rImEXYW1wCkItbHNwcm91dAoecBRi
LWwKVmljdHJlZWItbARvDgRydS0PZR91ZCVHB3YtL0cOZW0cLHkhGgtpZDdoKmwZcG9rJVNsGWJy
bwVnbmVtCSJhZ25ldCtGM2ZldBdcJ2QNH3VvDR8dbyplLQ1ld2csZw8dbS9NdWsqaC1sZC9DbG95
c3QvRzd0bHkKSGF1bnQvRzVnMwpPbml4DXIZc2UlSHlwbm8GB2JieQYTbC9WDiRyYgpFEmN0ch8D
dAMkcgpDdWIsIjMZYWsKSAltLBIlSAltLBcxCkxpY2sJdW5nBm9mZhMKHnoTGmh5aAJuGmh5ZCtD
aDFzZXkKVDFnLWEGMWc3a2gxCkgCc2VhKmVhZAcPDmRlNSplYWsTKnQzeXUqdDNtaSJyLiBNaW0l
U2N5dGgvSnlueApFEmMhYnV6egVnbTMcFHMmClQ2b3MFZ2lrM3APeTNhZG9zCkwLB3MNCSQKRWV2
ZSVWCwJlK0oOdGUrRmwzZSwcAnlnK09tMXl0JU9tN3QzAQFwcxgwH2FjdHlsKm4CbGF4GHJ0aWN1
bm8KWgtkb3MMDnRyZXMNB3QUaQ0HZyxhJg0HZywJImV3dHdvDGV3AAZhYnUkAG9yACVFeGVnZ3UA
ClQ1IWMADGEACksAcmEADml3AGl0AAoAYXAACk0ACkQAb2wACkcAaWdnbHkACkMSZmEAbGUAFGcA
aW4AFnIxICgACk5pZG8AY2gACkEAb3cAClIAHGlkZ2UAClAAcmkAV2VlAG9kACAAdGEAJU0AYXQA
dG8AZQoAaXIAXCcAKAApAApTACwKAG9uAGVsAC4AMAoAZXIAYW4AQ2gzAGFyAApWNQBlbgBhdXIA
YXMnJwAnLz0qfS9uLz0=

Він використовує підхід на основі граматики з правилами, розділеними символами NUL, та простим підходом розширення з подальшим розбиттям на нові рядки та вибором потрібного рядка. Введення здійснюється через stdin. Жоден зовнішній файл не використовується.

Більш детально

Я написав програму Java, яка застосовує кілька стратегій генерації граматики та дві стратегії генерації граматики до GolfScript і виводить багато програм GS для відновлення рядка. У цьому конкретному випадку виграшною комбінацією був жадібний граматик із пороговим рівнем 2 та переробкою двигуна. Жадібний будівельник граматики починає з граматики

<0> ::= "Bulbasaur\nIvysaur\nVenusaur\n..."

і неодноразово шукає повторювану послідовність терміналів і нетерміналів у правій частині, яка при виведенні в правило, що визначає новий нетермінальний, призводить до найбільшого зменшення загальної кількості терміналів і нетерміналів у граматиці . Поріг - це точка відсічення, при якій зниження вважається вже не варте.

Нетермінали сортують топологічно і потім нумерують від 0 до. Якщо вони перекривають будь-які знаки символів, які також є терміналами, механізм перенастроювання створює нове правило, відображення якого відповідає цьому терміналу. (Наприклад, якщо є правила від 0 до 37 і виникає пробільний символ, він буде відображати 38 до символу пробілу, а потім оновити RHS всіх правил для використання 38 замість 32). Праві сторони правил потім об'єднуються, відокремлюються NUL, і додається невеликий шматок рукописного GolfScript для розширення граматики.


2
+1 Ви б сказали трохи більше про свій підхід?
DavidC

3

brainfuck , 9337 байт

Досить впевнений, що знайду коротше рішення ^^

--->->>>>->>->>>-->->>>>->>>-->->>>>>->>>-->->>->>>->>>>>-->->>->>>>>>>>-->->>->>>>->>>-->->>>>>>>>-->->->>>>>>>>-->->>->>>>>>>-->->->>>>>>>-->->>>->>>>-->->>>>>>>>>>-->->>>>>>-->->->>>>->-->->>>>>>>>-->->>>>>>-->->>>>>>>>>-->->>>>>>>-->->->>>->>->-->->->>>>->>>-->->>>->>>>-->->>->>>>-->->>->>>-->->>>>>-->->>>->>>>-->->->>>>>-->->->>>>>>>>-->->->>>>>->>>-->->>>>>->>-->-->>-->-->->>>>>>>->-->->>>>>>>>>-->->>>>>->>-->-->>-->-->->>>>>>>>-->->>>>>>>>-->->>>>->>>>-->->>>>->>>>-->->>>>>>-->->>>>>->>>>-->->>>>>>>>>>-->->>>>>>>>>>-->->>>->>-->->>>>->>-->->>>>>>-->->>>>>-->->>>>>>>>>-->->->>->>-->->->>->>>>>-->->>>>>->>-->->>>>>>>>-->->>>>>>>-->->>>>>>>-->->>>>>>-->->>>>>->>-->->>>>>>>-->->>>>>>>-->->->>>>>-->->>>>>->>>-->->>>>>>>>-->->>>->>>>>-->->>>>>->>-->->>>>>>>>>-->->>>>>>->>>-->->>>->-->->->>->>>->-->->>->>->>->>-->->->>>>>-->->->>>>>>-->->->>>->>>-->->>>>>>>>>>-->->>>>>>>>>>-->->>>>>>>>>>>-->->>>>->>>>>-->->>>>->>>>>>-->->>>>>>>-->->>->>>>>>-->->>>>>-->->>>>>->-->->->>>>->>>-->->>>>>>>>-->->>>>>>>-->->->>>>>>>>-->->->>>>>>>-->->->>>>>>>-->>-->->>>>>-->->>>>>>-->->>>>-->->>>>>>>-->->>>>>>-->->>>-->->>>>>>>>-->->>>>>>>>-->->->>>>>-->->->>>>>>-->->>>>->>-->->>>>-->->>>>>>>-->->>>>>-->->>->>>>-->->>>>>>>-->->>>>>>>-->->>>>>>>>>-->->>>>>>>>-->->>>>>>>>>-->->>>>>>-->->->>>>->>-->->>>>>>>>>-->->>>>>>>>->>-->->>>>>>>>>-->->>>>>>>-->->>>>>>>-->->>>>>>>-->->>>>>>-->->>->>>>>-->->->>>>>->-->->->>>->>>>->>-->->>>>>->-->->>->>>->-->->>>>>>>-->->>->>>>>-->->>->>>>-->->>->>>>>-->->>-->-->->>>>-->->>>>>>>-->->>>>-->->>>>>->>>>>-->->->>>->>-->->>>>>>-->->->>>>>-->->->>>>->>>-->->>->>->>>>-->->->>>->>-->->>>>>-->->>>>>-->->->>>>>>>-->->>>>>>>-->->>->>>>>-->->>>>>>>-->->>->>>>>-->->>->>>->>-->->->>>>>-->->->>>>>>>-->->>>>>->>>>>-->->>>>>->>-->->>>>>>>>-->->->>>>>-->->>>>>>>-->->>->>>>>-->->>->>>>->>>-->->>->>>>>>>-->->>>>>>-->->>>+[-[>+++++++<-]<+++]>---->->->-->--->+++>->+++>->->--->>->>->+++>->->--->++>--->-->->->+++>->->--->->--->+++>->-->+++>-->--->--->->--->->--->+++>->-->--->-->--->-->-->--->->--->+++>->-->>+++>->--->--->+>->->-->->->-->--->--->++>+++>->->-->->->-->--->--->->-->+++>->->-->-->->--->--->->+++>->--->->->-->--->--->+>--->->+++>->-->--->--->->->->->--->->--->->--->--->--->++>--->--->--->-->--->--->>+++>-->->-->+++>--->->--->--->--->->-->-->-->--->+>-->--->--->--->>--->+>-->--->--->--->-->->->-->--->+>-->--->--->--->-->->--->+>+++>->->+++>->+++>--->+>+++>->-->--->+++>->--->--->+>->--->+++>->-->>--->>--->+++>->-->>--->->-->+++>-->->--->->->--->-->-->--->+>-->-->+++>--->--->->--->+>+++>-->--->--->->--->+>+++>-->--->->--->->--->>--->+>+++>-->--->->-->+++>->--->--->+>-->--->-->->+++>-->+>++>--->++>--->+>-->--->-->->-->-->+++>--->+>-->--->-->->->--->--->-->--->+>-->--->-->->+++>-->+>++>-->++>--->+>-->--->-->->-->-->-->--->+>-->--->-->-->-->-->--->--->->-->--->--->+++>-->->>--->->-->--->--->+++>--->-->--->--->++>->-->->-->>--->+>-->-->--->->+++>-->--->->--->>-->--->--->-->>->->--->--->--->++>-->--->--->-->>->->--->--->--->++>->--->+++>->--->>-->-->--->+++>->--->+>--->--->-->->--->--->>-->-->-->-->--->++>-->-->--->->-->->-->--->--->+>+++>->+++>->--->+>+++>->+++>->--->--->->--->++>--->-->-->-->+++>->--->++>--->-->-->-->-->->--->--->->-->--->-->--->->->--->->->--->->->-->-->--->+>--->-->>->--->--->+>--->->->-->+++>-->--->+>->>--->->--->-->--->>-->-->--->->--->-->--->+>+++>-->-->--->>--->+>->-->-->--->+++>->--->--->>->-->>-->-->->--->--->->->--->+++>-->-->-->--->--->+>-->-->-->>+++>--->--->+>-->-->-->>--->-->->-->--->+>-->-->-->>->+++>->--->--->->--->->+++>--->>+++>--->+++>--->->+++>--->->-->+++>-->+++>>+++>-->--->+>+++>--->--->-->->--->+>+++>--->--->-->-->--->--->+>+++>--->--->+++>-->->--->->--->-->-->->->->-->->->--->++>--->--->->-->-->--->--->-->-->--->++>-->--->->->--->--->--->--->-->-->--->++>--->-->->+++>--->-->-->-->--->++>--->-->->+++>--->->->--->-->--->>--->-->--->->--->--->--->>->+++>->--->-->--->->--->>-->-->--->-->--->+>-->-->>->+++>--->+>+++>->-->--->+++>->--->--->+>-->-->>->-->-->--->--->+>-->-->>--->->-->--->+>+++>--->-->--->-->-->->--->--->+>+++>--->-->--->->-->-->--->>+++>->--->--->->--->--->++>--->--->->-->--->->-->--->->-->--->->-->-->--->+>--->--->-->--->->--->>--->-->-->--->--->>->-->-->--->->--->+>->-->--->+>--->--->-->-->--->--->->--->->-->-->>->->--->->--->>+++>->->-->>--->>+++>->-->->--->->--->>--->-->--->+++>->--->+>-->-->>--->->->-->>->--->--->--->>>->-->-->--->>->+++>--->--->>--->>-->-->--->-->--->->--->++>-->-->->-->->--->--->->-->--->--->->->-->--->--->--->->>--->--->--->->->--->--->->>--->--->--->->->-->->--->->->--->-->-->--->--->+>+++>->-->>+++>-->--->>-->->-->-->-->-->--->--->--->>-->->-->-->-->--->--->+++>-->--->>-->--->-->-->->->-->--->--->>-->--->--->-->-->--->--->++>--->--->>-->-->--->--->+>--->>--->-->->-->--->+>--->>--->-->-->--->->--->+++>-->->--->>--->++>+++>-->--->--->-->+++>--->>+++>-->--->+++>->-->--->+++>-->--->>-->->->--->+++>--->+>--->+++>--->->+++>--->>-->-->--->--->--->-->--->+>--->+++>-->-->-->--->--->+>->+++>->>->--->+>->+++>->-->-->--->--->+>->+++>+>+>-->-->--->--->+>--->>->--->--->->--->>>-->>--->->-->--->--->->+++>--->->>>--->+>+++>--->-->+++>->--->+>-->-->->-->->--->++>+++>->->-->->--->+>+++>--->-->-->+++>->->--->>>+++>->+++>--->-->->--->>+++>->->+++>->--->->-->->->-->--->->--->->--->--->--->++>+++>->-->->--->-->-->--->>-->-->->--->-->-->--->>-->+++>->--->-->-->--->+>-->->>--->-->-->--->+>-->+++>-->>->--->--->+>-->+++>->->+++>->--->>+++>--->->->-->--->>+++>--->->->-->->->--->->--->->-->--->+++>--->->>-->--->+>-->-->->-->+++>>--->->->->-->--->->-->-->--->++>+++>->--->-->->--->+>-->-->->->--->->--->->->+++>->-->-->-->--->->->+++>--->-->-->+++>-->->--->->->+++>--->-->-->-->->--->--->+>--->>->>-->--->+>--->>+[-[>+++++++<-]<++++]>---->>++>>--->+++>>+++>++>->--->>+++>->>+++>++>->--->->>++>++>>+++>++>->--->+>+++>+++>->+>+++>++>->>->--->+>+++>+++>->+>>>>+++>++>--->+>+++>+++>->--->>+++>->->--->+++>-->++>--->->+>>>--->>+++>->+>+++>->+>>>--->>>+++>>+>+++>--->>>--->+>+++>+>>->--->--->>--->--->>+>+++>--->+++>->--->>++>+>+>>->+>->>>--->>>>->>>--->++>+++>->++>++>+++>--->>>>->->--->>>--->>--->->++>>->--->>--->->++>>+++>+>+>+++>--->>--->->++>>+++>+>--->++>+++>+>+>+++>+>+++>--->++>+++>+>--->-->+++>+>>--->+++>--->>+++>->+++>--->--->--->>+++>->+++>--->--->+++>->+++>++>>--->->->--->+++>->--->>--->->+++>-->+++>++>--->++>+++>--->-->+++>++>--->+++>+++>++>->>+++>->>--->--->+++>+++>++>->>>+++>>+++>--->-->--->->+++>->+++>++>+>++>+>+++>--->-->--->->+++>->--->++>+++>--->-->--->->+++>-->++>>>++>--->-->--->->+++>->+++>++>+>++>+>+++>--->-->--->->+++>->--->++>+++>--->-->--->->+++>->--->++>++>--->+>>>+>+++>--->->->--->+>>>+>+++>--->>>--->->++>>--->--->-->--->-->--->++>>+>+++>>>>--->+>--->++>++>>->--->++>+>+>--->>--->++>++>>->+>++>+>+>--->+++>++>--->+++>+>--->-->+++>>--->+++>+>--->->->->--->>+++>--->-->>+++>+++>+>--->->--->>>--->>++>+>>--->>+++>->+++>>--->>+++>->+++>>>-->+>--->->>++>+++>++>+++>+>--->->>++>+++>+>+++>+>+++>--->++>--->++>>>+>+>--->++>++>++>+>->--->+++>--->--->>+++>--->+>+++>--->>>->>--->+++>++>--->>>->->++>-->->--->-->+++>>->++>-->->--->--->+++>++>->>->--->>->--->+>>+++>--->>--->-->->+++>--->>--->+>+++>--->->->-->+++>++>--->++>>--->>+++>>--->--->+++>++>--->>+++>>--->--->+++>--->->>--->>+++>>--->--->->+++>+>+++>--->->--->->+++>--->++>+++>->+++>--->->+++>--->->>+++>->+++>>+++>+>--->--->+++>-->+++>+++>--->--->--->+++>-->+++>+++>->>--->--->+++>-->+++>+++>+>--->--->>>>>>--->->+++>++>+>--->>>>--->--->++>--->>>>--->->--->-->+>->>>--->>>>--->--->>++>+>+++>-->+++>+++>>--->--->>++>+>+++>-->->++>>>--->-->>+++>->++>->>--->-->->+++>+++>>>>->--->-->+++>>>+>--->>+++>++>->+>+++>--->++>+++>--->--->->+++>>+++>--->+++>>+++>--->--->+++>->>--->+++>>+++>--->--->->+++>--->--->+++>++>++>>+>--->+>>--->--->+++>++>++>>+>+++>++>--->--->+++>->+>>+>-->+++>+>->--->++>+++>->++>+++>--->++>+++>->->--->+++>--->+++>>>>--->++>>--->++>+++>++>++>--->-->->--->+>>->--->--->++>->--->+++>+++>>>>->>->--->+>>+++>->>+>>->--->-->+++>>+>>->--->->+++>++>++>+>>->--->-->>++>++>+++>->--->->++>--->-->--->++>->+++>--->>>>--->->->--->++>+++>--->++>->+++>--->--->->--->++>--->++>++>>>->--->->+++>>+>+++>->--->--->+++>>>-->+>->+++>->>--->+++>-->>++>++>++>+>>--->+++>-->>++>++>++>+>+++>->--->+>++>--->+++>++>>--->--->+++>->+++>--->+++>->--->->--->+>+>+++>++>>>>--->->--->+>+>+++>++>-->+++>+++>++>--->+++>--->-->->--->+>++>++>++>--->++>+++>+>+>--->++>++>--->>>>>--->++>++>--->++>+++>->+++>+++>->++>--->++>+++>->->+++>++>--->+>+++>+++>++>>>->--->--->+++>++>++>>>+++>--->++>+++>++>++>+++>>->+++>+++>++>--->->+++>->>>+++>--->+++>>+++>->->+++>--->-->+++>>->>>++>--->+++>>+++>->--->++>++>--->+++>+>+++>->->++>--->+++>+>+++>->+>--->>--->--->->+>+>--->--->+>>--->+++>-->->+>+++>>->--->+>->++>-->--->+++>>>-->+>+++>--->++>>>--->--->+++>++>+>+++>->--->>--->++>>--->->--->--->+++>++>->+++>>--->--->+++>++>--->->+++>->--->--->-->->+++>->+++>->+++>>--->+++>+++>--->->+++>>--->++>--->+>+>+++>--->+++>>+++>>>--->->+++>--->+++>->>+++>++>--->+>+++>>+>>+++>++>--->--->>+++>->>+++>++>--->>+++>->->++>+++>++>--->->+>+++>++>->+>>--->->+>+++>>+>+++>->--->++>+++>--->++>+>+++>--->++>+++>--->++>+>+++>--->>--->->>->+++>->+++>-->+>->>--->+++>++>+++>->>+++>-->--->->->+>--->-->++>++>+++>--->+++>+++>--->->+++>>--->--->+++>>+>->>>--->++>->+++>+>--->++>--->--->++>->+++>++>+++>++>+++>--->->--->++>->+++>++>+++>++>--->+>>--->--->>--->+>--->+++>--->--->>--->+[-<++++]<<<,[>[>+<-]>[<++++++++++>-]<<<++++++++[>------<-]>[>+<-],]>-[>>[>]+[<]<-]>>[>]>[.>]

Спробуйте в Інтернеті!


2

q / kdb , 789 + 77 = 866 байт

Рішення:

/ encoding pokemon.txt into 'q' text file (not added to byte count, not golfed)
`:q 0:enlist "c"$2 sv'8 cut (raze 3_'0b vs'4h$(asc distinct p)?p:lower first read0`:pokemon.txt),000000b

/ checking length of q file (note: file is written with trailing newline \r\n, so could/should be 787 bytes)
hcount `:q
789

/ decoding q and look-up of value
@[;0;upper](";"vs(" '().;",.Q.a)2 sv'5 cut -6_(,/)0b vs'4h$"\n"sv(0:)`:q)@-1+

Приклади:

q)@[;0;upper](";"vs(" '().;",.Q.a)2 sv'5 cut -6_(,/)0b vs'4h$"\n"sv(0:)`:q)@-1+45
"Vileplume"
q)@[;0;upper](";"vs(" '().;",.Q.a)2 sv'5 cut -6_(,/)0b vs'4h$"\n"sv(0:)`:q)@-1+151
"Mew"
q)@[;0;upper](";"vs(" '().;",.Q.a)2 sv'5 cut -6_(,/)0b vs'4h$"\n"sv(0:)`:q)@-1+1
"Bulbasaur"

Пояснення:

Стратегія (як і інші рішення) полягає в кодуванні кожного 8-бітного символу в 5 біт, це робиться шляхом створення меншого алфавіту з 32 символів, знаходження індексів кожної літери у вхідному списку (0..31), а потім кодування цих як 5-бітові числа (які потрібно з'єднати та перетворити на 8-бітні символи, щоб записати у Q).

Розшифровка робить прямо протилежне цьому, алфавіт, як відомо " '().;abcdefghijklmnopqrstuvwxyz", тому розділіть введення на партії по 5 біт і перетворіть назад у цілі числа, індексуйте в алфавіт. Розділіть це на, ;а потім проіндексуйте його введенням користувача (відніміть 1 за рахунок 0-індексації) та (повторно) використовуйте великі літери першої літери.

@[;0;upper] (";" vs " '().;abcdefghijklmnopqrstuvwxyz"2 sv'5 cut -6_raze 0b vs'4h$ "\n" sv read0 `:q)@-1+ / ungolfed decoder
                                                                                                      -1+ / same as doing 'x-1', subtract 1 from input
                                                                                                     @    / index in to item on the left
            (                                                                                       )     / do all this together
                                                                                           read0 `:q      / read text file 'q'
                                                                                   "\n" sv                / join back newlines (as q breaks text files on newlines)
                                                                               4h$                        / cast char array to bytes
                                                                         0b vs'                           / convert each byte to binary (boolean list)
                                                                    raze                                  / flatten list
                                                                 -6_                                      / drop the 6 padding bits added to align 5/8-bits
                                                           5 cut                                          / chop into lists of 5-bit lengths
                                                      2 sv'                                               / convert each boolean list back to an integer
                    " '().;abcdefghijklmnopqrstuvwxyz"                                                    / index into our lookup table at each index
             ";" vs                                                                                       / break this string up at semicolons
 @[;0;upper]                                                                                              / apply 'upper' to each first character in the result

Примітки:

Ще 13 байт (879), якщо нам потрібно використовувати велику Mчастину другого Mr. Mime:

{@[x;0,1+x ss" ";upper]}(";"vs(" '().;",.Q.a)2 sv'5 cut -6_(,/)0b vs'4h$"\n"sv(0:)`:q)@-1+

2

Python 3, 178 + 1253 = 1431 байт

import re
def f(l,N,p='',n=0,w=''):
 for s in open(l,'r',1,'utf-8').read().split('\0'):t=re.match('\d*',s)[0];n=int(t or n);w=w[:n]+s[len(t):];p+=w[:-1]*(ord(w[-1])==N)
 return p

Кредит до wizzwizz4 для їх функції декомпрессионной Bookworm: Аналізувати словник формат книжниками

Потрібно передати ім'я файлу та потрібний номер Pokemon функції. Повертає рядок, що містить Pokemon.

Наприклад: f('pokemans', 1') повертає «Бульбазаур».

У файлі використовується стиснення BookWorm, але оскільки для цього функціонування Pokemon має бути в алфавітному порядку, всі вони закінчуються символом, порядковий номер якого відповідає їх кількості (напр. Nidorino фігурує як "7o!", "7o" - стислий рядок " Nidorino "і"! "Будучи \ 33). Елементи позначені нульовим байтом \ 0, оскільки знаки Pokemon починаються з \ 1.

Через складність декомпресії BookWorm це насправді гірше, ніж взяти основний жорстко кодований список, а потім розділити його та індексувати. Але це відповідь роману, тому я подумав, що все-таки опублікую його.

Шістнадцятковий дамп файлу 'pokemans':

41 62 72 61 3f 00 31 65 72 6f 64 61 63 74 79 6c c2 8e 00 6c 61 6b 61 7a 61 6d 41 00 72 62 6f 6b 18 00 32 63 61 6e 69 6e 65 3b 00 74 69 63 75 6e 6f c2 90 00 30 42 65 65 64 72 69 6c 6c 0f 00 32 6c 6c 73 70 72 6f 75 74 45 00 31 6c 61 73 74 6f 69 73 65 09 00 75 6c 62 61 73 61 75 72 01 00 32 74 74 65 72 66 72 65 65 0c 00 30 43 61 74 65 72 70 69 65 0a 00 31 68 61 6e 73 65 79 71 00 33 72 69 7a 61 72 64 06 00 34 6d 61 6e 64 65 72 04 00 35 65 6c 65 6f 6e 05 00 31 6c 65 66 61 62 6c 65 24 00 35 69 72 79 23 00 32 6f 79 73 74 65 72 5b 00 31 75 62 6f 6e 65 68 00 30 44 65 77 67 6f 6e 67 57 00 44 69 67 6c 65 74 74 32 00 32 74 74 6f c2 84 00 30 44 6f 64 72 69 6f 55 00 33 75 6f 54 00 31 72 61 67 6f 6e 61 69 72 c2 94 00 36 69 74 65 c2 95 00 33 74 69 6e 69 c2 93 00 32 6f 77 73 65 65 60 00 31 75 67 74 72 69 6f 33 00 30 45 65 76 65 65 c2 85 00 31 6b61 6e 73 17 00 6c 65 63 74 61 62 75 7a 7a 7d 00 35 72 6f 64 65 65 00 31 78 65 67 67 75 74 65 66 00 37 6f 72 67 00 30 46 61 72 66 65 74 63 68 27 64 53 00 31 65 61 72 6f 77 16 00 6c 61 72 65 6f 6e c2 88 00 30 47 61 73 74 6c 79 5c 00 31 65 6e 67 61 72 5e 00 32 6f 64 75 64 65 4a 00 31 6c 6f 6f 6d 2c 00 6f 6c 62 61 74 2a 00 33 64 65 65 6e 76 00 34 75 63 6b 37 00 33 65 6d 4c 00 31 72 61 76 65 6c 65 72 4b 00 32 69 6d 65 72 58 00 32 6f 77 6c 69 74 68 3a 00 31 79 61 72 61 64 6f 73 c2 82 00 30 48 61 75 6e 74 65 72 5d 00 31 69 74 6d 6f 6e 63 68 61 6e 6b 00 36 6c 65 65 6a 00 31 6f 72 73 65 61 74 00 79 70 6e 6f 61 00 30 49 76 79 73 61 75 72 02 00 4a 69 67 67 6c 79 70 75 66 66 27 00 31 6f 6c 74 65 6f 6e c2 87 00 79 6e 78 7c 00 30 4b 61 62 75 74 6f c2 8c 00 36 70 73 c2 8d 00 32 64 61 62 72 61 40 00 32 6b 75 6e 61 0e 00 32 6e 67 61 73 6b 68 616e 73 00 31 69 6e 67 6c 65 72 63 00 6f 66 66 69 6e 67 6d 00 72 61 62 62 79 62 00 30 4c 61 70 72 61 73 c2 83 00 4c 69 63 6b 69 74 75 6e 67 6c 00 4d 61 63 68 61 6d 70 44 00 34 6f 6b 65 43 00 35 70 42 00 32 67 69 6b 61 72 70 c2 81 00 33 6d 61 72 7e 00 6e 65 6d 69 74 65 51 00 35 74 6f 6e 52 00 32 6e 6b 65 79 38 00 72 6f 77 61 6b 69 00 31 65 6f 77 74 68 34 00 32 74 61 70 6f 64 0b 00 77 c2 97 00 33 74 77 6f c2 96 00 31 6f 6c 74 72 65 73 c2 92 00 72 2e 20 4d 69 6d 65 7a 00 75 6b 59 00 30 4e 69 64 6f 6b 69 6e 67 22 00 34 71 75 65 65eef 0 72 61 6e 20 28 66 29 1d 00 39 6d 29 20 00 35 69 6e 61 1e 00 37 6f 21 00 32 6e 65 74 61 6c 65 73 26 00 30 4f 64 64 69 73 68 2b 00 31 6d 61 6e 79 74 65 c2 8a 00 33 73 74 61 72 c2 8b 00 31 6e 69 78 5f 00 30 50 61 72 61 73 2e 00 35 65 63 74 2f 00 31 65 72 73 69 61 6e 35 00 69 64 67 65 6f 74 12 00 35 6f 7474 6f 11 00 79 10 00 32 6b 61 63 68 75 19 00 6e 73 69 72 7f 00 31 6f 6c 69 77 61 67 3c 00 35 68 69 72 6c 3d 00 72 61 74 68 3e 00 32 6e 79 74 61 4d 00 72 79 67 6f 6e c2 89 00 31 72 69 6d 65 61 70 65 39 00 73 79 64 75 63 6b 36 00 30 52 61 69 63 68 75 1a 00 32 70 69 64 61 73 68 4e 00 74 69 63 61 74 65 14 00 33 74 61 74 61 13 00 31 68 79 64 6f 6e 70 00 33 68 6f 72 6e 6f 00 30 53 61 6e 64 73 68 72 65 77 1b 00 35 6c 61 73 68 1c 00 31 63 79 74 68 65 72 7b 00 65 61 64 72 61 75 00 33 6b 69 6e 67 77 00 32 65 6c 56 00 31 68 65 6c 6c 64 65 72 5a 00 6c 6f 77 62 72 6f 50 00 34 70 6f 6b 65 4f 00 31 6e 6f 72 6c 61 78 c2 8f 00 70 65 61 72 6f 77 15 00 71 75 69 72 74 6c 65 07 00 74 61 72 6d 69 65 79 00 34 79 75 78 00 30 54 61 6e 67 65 6c 61 72 00 32 75 72 6f 73 c2 80 00 31 65 6e 74 61 63 6f 6f 6c 48 00 36 72 75 65 6c 49 00 30 56 61 70 6f 72 65 6f6e c2 86 00 31 65 6e 6f 6d 6f 74 68 31 00 34 6e 61 74 30 00 33 75 73 61 75 72 03 00 31 69 63 74 72 65 65 62 65 6c 6c 47 00 32 6c 65 70 6c 75 6d 65 2d 00 31 6f 6c 74 6f 72 62 64 00 75 6c 70 69 78 25 00 30 57 61 72 74 6f 72 74 6c 65 08 00 31 65 65 64 6c 65 0d 00 33 70 69 6e 62 65 6c 6c 46 00 7a 69 6e 67 6e 00 31 69 67 67 6c 79 74 75 66 66 28 00 30 5a 61 70 64 6f 73 c2 91 00 31 75 62 61 74 29 00


1
1286 байт при використанні простого рядка замість файлу (спробуйте його в Інтернеті) [ bit.ly/2O0pZK0] . Але ідея стиснення файлів приємна.
pixma140

1

Pure Bash (без Coreutils), 1173 байт

read n;set {Bulba,Ivy,Venu}saur Char{mander,meleon,izard} {Squi,Warto}rtle Blastoise Caterpie Metapod Butterfree Weedle Kakuna Beedrill Pidge{y,otto,ot} Rat{tata,icate} {Sp,F}earow Ekans Arbok {Pika,Rai}chu Sands{hrew,lash} Nido{ran\ \(f\),rina,queen,ran\ \(m\),rino,king} Clefa{iry,ble} Vulpix Ninetales {Jigglyp,Wigglyt}uff {Zu,Gol}bat Oddish Gloom Vileplume Paras{,ect} Veno{nat,moth} Diglett Dugtrio Meowth Persian {Psy,Gol}duck Mankey Primeape Growlith Arcanine Poliw{ag,hirl,rath} {A,Kada}bra Alakazam Mach{op,oke,amp} Bellsprout {Weepin,Victree}bell Tentac{ool,ruel} Geodude Graveler Golem Ponyta Rapidash Slow{poke,bro} Magne{mite,ton} Farfetch\'d Dod{uo,rio} Seel Dewgong Grimer Muk {Shelld,Cloyst}er Gastly Haunter Gengar Onix Drowsee Hypno Krabby Kingler Voltorb Electrode Exeggut{e,or} Cubone Marowak Hitmon{lee,chan} Lickitung {Koff,Weez}ing Rhy{horn,don} Chansey Tangela Kangaskhan Horsea Seadra Goldeen Seaking Star{yu,mie} Mr.\ Mime Scyther Jynx Electabuzz Magmar Pinsir Tauros Magikarp Gyarados Lapras Ditto Eevee {Vapore,Jolte,Flare,Poryg}on Oma{nyte,star} Kabuto{,ps} Aerodactyl Snorlax Articuno Zapdos Moltres Dra{tini,gon{air,ite}} Mew{two,};echo ${!n}

Спробуйте в Інтернеті!

Використання фігурних дужок , як ця відповідь , але використовує тільки Баш вбудованих команд read, setі echo. setвстановлює аргументи командного рядка тим, що задані, так що, наприклад, $1є Bulbasaur. ${!n}- це непряме розширення, яке перетворюється на змінну змінної з назвою $n.


1

JavaScript, 1277 1276 байт

n=>";Bulbasaur;Ivysaur;Venusaur;Charmander;Charmeleon;Charizard;Squirtle;Wartortle;Blastoise;Caterpie;Metapod;Butterfree;Weedle;Kakuna;Beedrill;Pidgey;Pidgeotto;Pidgeot;Rattata;Raticate;Spearow;Fearow;Ekans;Arbok;Pikachu;Raichu;Sandshrew;Sandslash;Nidoran (f);Nidorina;Nidoqueen;Nidoran (m);Nidorino;Nidoking;Clefairy;Clefable;Vulpix;Ninetales;Jigglypuff;Wigglytuff;Zubat;Golbat;Oddish;Gloom;Vileplume;Paras;Parasect;Venonat;Venomoth;Diglett;Dugtrio;Meowth;Persian;Psyduck;Golduck;Mankey;Primeape;Growlith;Arcanine;Poliwag;Poliwhirl;Poliwrath;Abra;Kadabra;Alakazam;Machop;Machoke;Machamp;Bellsprout;Weepinbell;Victreebell;Tentacool;Tentacruel;Geodude;Graveler;Golem;Ponyta;Rapidash;Slowpoke;Slowbro;Magnemite;Magneton;Farfetch'd;Doduo;Dodrio;Seel;Dewgong;Grimer;Muk;Shellder;Cloyster;Gastly;Haunter;Gengar;Onix;Drowsee;Hypno;Krabby;Kingler;Voltorb;Electrode;Exeggute;Exeggutor;Cubone;Marowak;Hitmonlee;Hitmonchan;Lickitung;Koffing;Weezing;Rhyhorn;Rhydon;Chansey;Tangela;Kangaskhan;Horsea;Seadra;Goldeen;Seaking;Staryu;Starmie;Mr. Mime;Scyther;Jynx;Electabuzz;Magmar;Pinsir;Tauros;Magikarp;Gyarados;Lapras;Ditto;Eevee;Vaporeon;Jolteon;Flareon;Porygon;Omanyte;Omastar;Kabuto;Kabutops;Aerodactyl;Snorlax;Articuno;Zapdos;Moltres;Dratini;Dragonair;Dragonite;Mewtwo;Mew".split`;`[n]

Спробуйте в Інтернеті! Node.Js тому, що немає простого JS


1
Ви можете позбутися дужок навколо, (n)а також можете скористатися, .split`;`щоб зберегти 4 байти
Термін дії минув

@ExpiredData Дякую
facepalm42

2
Я думаю, що мій телефон захлинається URL-адресою TIO, але ви можете зберегти байт за допомогою префіксації рядка ;та індексації від n, а неn-1
cole

1
-83 байт, зараз: 1,193 байт - ви можете спробувати тут - я щойно адаптував варіант @Chris Pure Bash з розширенням дужки node.js.
pixma140

1
@ pixma140 Ні, я просто думаю, що це класна річ. Я могла б колись скоротити це, можливо?
facepalm42
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.