Интересна задача за любопитните


24

Здравейте,

Ники измисли една интересна задача, която няма как да има авторско решение. Даден ви е български тест и вие трябва да познаете дали определени думи са място или човек. Чекера на задачата е малко по-различен. Ще ви признае теста за верен, ако уцелите поне 35% от думите

Задачата можете да видите тук:

CLICK

Казва се "Познай името". Има и условие, и сорс код на самия чекер, в случай, че искате да го разгледате.

За да е по-интересно организираме състезание със символични награди - кой ще успее да напише най-интересен алгоритъм и да хване най-много точки на задачата в BGCoder. Краен срок: 2 февруари 23:59. Ако двама имат еднакъв брой точки ще гледаме кой пръв е изпратил решението си, т.е. който е бил по-бърз. Решавайте в линка, който съм посочил. Другите задачи в състезанието ги игнорирайте.

Ще гледаме решенията дали са смислени, а не хакерски. Събмити, които правят магии с рандъм, нагласяния спрямо тестовите резултати и т.н., ще бъдат дисквалифицирани. Само смислените решения се борят за награда.

Успех!

Поздрави,

Ивайло




Отговори



6

Здравейте,

Най-добрите решения със 100 точки са:

Rusekov

hiksa

Моля заповядайте когато ви е удобно в офиса на екипа - на първия етаж в Сватбения мол, за да си получите наградките.

Поздравления, надявам се да ви е било интересно!

Ивайло


от ivaylo.kenov (30760 точки)


0
Гледайки тезултатите от изпита, в който е участвала задачата има един Първенец с 40 точки, един с 20 и няколко души с по 10. Явно това си е задача за шампиони! =)

от RANOPILE (1038 точки)


0
Те въобще не опитваха да я решат. Хората с 10 точки - използват random. Този с 40 прави хакове спрямо тестовете. Нищо смислено.

от ivaylo.kenov (30760 точки)


0
Интересно ми е ако хардкодна 5000 имена дали ще надвиша лимита за големина на source файла.
Едит.
Не става номера. Дава лимит на памет. Пробвах с Hashset и .Contains.
Памет: 210.06 MB Време: 1.507 s
Странно че на моя комп 0-левия тест минава за 0.8 сек.

от nikolap (555 точки)


0
Аз си мислех за варианта да хакнем възможно повече имена в едно Dictionary или Масив

от RANOPILE (1038 точки)

0
BgCoder-a твърди че съм ползвал 210 mb, което надхвърля лимита... Ще се пробва нещо друго.

от nikolap (555 точки)



1
Кой може да участва ?
Щото на въпроса "Кой клас сте?" - трябва да отговоря много голям :D

от Sir_EFO (733 точки)


0
Аз отговорих "завършил" и ме пусна :)

от STzvetkov (1330 точки)

0
е как кой .. смятай .. аз съм 18ти ! :)

от dzhenko (3893 точки)



0

Който има проблеми с кирилицата на конзолата си, както аз допреди малко, може да погледне в тази тема.

Отговора на petyob най  ми помогна.


от wooden_jesus (2128 точки)


2

Ще трябва да се чете за Name Entity Problem smiley, освен това и за лингвистики, статистики и т.н.




0

Ей, хора... кой е казал че имената и местностите ще са само български?

Кат ги знам кви са гадни трейнърите wink  като нищо единия от тестовете може да е ... примерно за разходката на Нийл Армстронг в Морето на тишината на Луната. Или за изкачването на Джомолунгма (местното име на връх Еверест) от  Едмънд Хилари и шерпът Тенсинг Норгей. Така че идеята с речници просто е ... неприложима при тия ограничения за памет и време.

С'я се замислям... сървъра на който се тества приложението има ли връзка към Интернет? devil Може ли програмата да ползва някакъв сървиз "в облака"? Не че няма да изпадна от тайм лимит-а, но просто в 200 к сорс не виждам как може да се ползва речник. Друго ще е да се върже към една база данни, в която има по около 1 млн записа на имена, и 1 млн записа за местности...

Другото е да се напише софтуер, който да "разбира" семантично изречението. Но това отново... просто няма как да се събере в 200 к сорс.


от JulianG (5316 точки)


0

Дава ми странен отговор на нулевия тест. Предположения?

На 1, 4 и 5-ти ред.


от wooden_jesus (2128 точки)


0
Проблем с четенето на кирилица? Виж че винаги връщаш "place"

от Nikolay.IT (39117 точки)

0
Пробвай така да четеш/пишеш string s = Console.ReadLine(); byte[] bytes = Encoding.UTF8.GetBytes(s); s = Encoding.UTF8.GetString(bytes);




0

Не мога да разбера какво се случава с нулевия тест? На конзолата излиза :

Person
Place
Place
Person
Place
Unknown

а в бгкодер :
 
Answer #1: Unknown (0). Expected: person
Answer #2: Unknown (0). Expected: place
Answer #3: Unknown (0). Expected: place
Answer #4: Unknown (0). Expected: person
Answer #5: Unknown (0). Expected: place
Answer #6: Unknown (0). Expected: place

Някой има ли идея от какво се получава?


от Rusekov (971 точки)


0
И при теб: Проблем с четенето на кирилица? Винаги връщаш Unknown

от Nikolay.IT (39117 точки)

0
Ахааа :) мерси!

от Rusekov (971 точки)



0

И един въпрос от мен. Това решение би трябвало да покрие нулевия тест. В конзолата ми си изписва всичко ок, но в BGCoder-а следното:

Нещо се случва с кирилицата и я преобразува в ???. Пробвах да изпиша Пешо само и ми даде ????. Някой да има идея как да го оправя този проблем?

EDIT: Когато напиша Console.InputEncoding = Encoding.UTF8; ми хвърля грешка Unhandled Exception: System.IO.IOException?


от Nikolay_Radkov (2911 точки)


0
Пробвай с unicode

от Rusekov (971 точки)

0
И пак не иска: Когато напиша Console.InputEncoding = Encoding.UTF8; ми хвърля System.IO.IOException
При Console.InputEncoding = Encoding.Unicode; хвърля System.ArgumentNullException
А като го заменя със Console.OutputEncoding = Encoding.Unicode; не хвърля грешка, а се показва горната картинка. Нямам си и на идея какво се случва

от Nikolay_Radkov (2911 точки)



0
Сменихме текстовете да бъдат UTF8 с BOM и в момента тръгнаха. Имаше проблем с енкодинга. Ще пуснем ретест на всички задачи. Извиняваме се за грешката!

от ivaylo.kenov (30760 точки)


0
Така, промених си локалните регионни настройки на бг. Window-са ми е на en. Какво трябва да си сложим в кода, за да стане. При Console.InputEncoding = Encoding.UTF8; Console.InputEncoding = Encoding.Unicode; Console.InputEncoding = Encoding.Default; хвърля ексепшъни в БГКодер. Ако не слагам енкодинг, всичко е ок, но БГКодер пак ми чете само "place". Тъпи въпроси, но за първи път ми се случва да пиша на бг в конзолата.

от wooden_jesus (2128 точки)

0
Ти четеш БГ, не пишеш БГ. За четенето не виждам проблем и без да пипаш енкодинга.

от lazo003 (5 точки)