Use float instead, otherwise you'll get WA8!!! Sorry, but it's wrong. I got AC without floats, only doubles :)) Any advice for WA2? Any advice for WA2? Try this test: 1 James 0.8 0.7 0.75 0.5 0.85 J 2 0.4 100 mibLexus 0.99 1000 car2 2 mibLexus 0 pq123bu mibLexus 12 ab891ah 2 0.2 0.3 18 100 cockroach 0.8 0.3 30 46 monster2 1000000 30 200 0.95 19 10 newagent Klint 0.9 0.8 0.5 0.7 0.86 20 quest run 48 30 newcar mibLexus 47 aa890bu 43 quest kill 100 cockroach 53 quest kill 100 cockroach 67 quest kill 100 cockroach 71 quest kill 100 cockroach 80 quest talk 1 0.1 10 998 newcar mibLexus 0 z2 999 newcar car2 0 z1 1000 quest findout 200 0.1 30 2000 quest findout 30 0.1 30 3000 quest kill 100 cockroach 4000 quest kill 10 monster2 5000 quest kill 10 monster2 6000 newagent John 0.5 0.5 0.5 0.5 0.5 7000 quest kill 10 monster2 999999 quest findout 500000 0.1 1000000 1000000 quest findout 500000 0.1 1000000 Answer: 0000:00:10 New agent Klint got a letter K. 0000:00:20 Agent J started quest 1 using car pq123bu. 0000:00:30 MIB bought a car of class mibLexus. 0000:00:43 Agent K started quest 2 using car ab891ah. 0000:02:12 Agent J finished quest 1. 0000:02:12 Agent J started quest 3 using car aa890bu. 0000:02:25 Car ab891ah was broken. 0000:03:00 Agent K killed monster cockroach. 0000:03:14 Car aa890bu was broken. 0000:04:44 Agent J killed monster cockroach. 0000:05:05 Agent K finished quest 2. 0000:05:05 Agent K started quest 4. 0000:07:07 Agent J finished quest 3. 0000:07:07 Agent J started quest 5 using car pq123bu. 0000:07:12 Car pq123bu was broken. 0000:07:29 Agent K killed monster cockroach. 0000:09:34 Agent K finished quest 4. 0000:09:34 Agent K started quest 6. 0000:09:47 Agent K finished quest 6. 0000:09:49 Agent J killed monster cockroach. 0000:12:12 Agent J finished quest 5. 0000:16:38 MIB bought a car of class mibLexus. 0000:16:39 MIB bought a car of class car2. 0000:16:40 Agent K started quest 7 using car z2. 0000:18:36 Car z2 was broken. 0001:01:51 Agent K finished quest 7. 0001:09:20 Agent J and agent K started quest 8. 0001:11:20 Agent J and agent K finished quest 8. 0002:02:00 Agent K started quest 9. 0002:04:23 Agent K killed monster cockroach. 0002:06:28 Agent K finished quest 9. 0002:06:28 Agent K has tired. 0002:18:40 Agent J started quest 10. 0002:19:25 Agent J killed monster monster2. 0002:19:39 Agent J finished quest 10. 0003:11:20 Agent J started quest 11. 0003:12:04 Agent J killed monster monster2. 0003:12:18 Agent J finished quest 11. 0004:04:00 New agent John got a letter I. 0004:20:40 Agent J started quest 12. 0004:21:24 Agent J killed monster monster2. 0004:21:38 Agent J finished quest 12. 0694:10:39 Agent J started quest 13. 0694:10:40 Agent I started quest 14. 2604:14:01 Agent J finished quest 13. 3472:05:20 Agent I finished quest 14. Sorry, but it's wrong. I got AC without floats, only doubles :)) idk, i have literally the same solution with double that got WA 8, and with float - AC. maybe someone else might have the same issue Edited by author 14.02.2025 19:551. There's a «pair stat» thing... then, there are 4 quest descriptions above. In those formulas, it's not quite clear whether i should use pair stat or individual stat in each case. For instance, «The time needed to perform investigation by an agent with intelligence i is mint/i where mint is the minimal time required to perform this investigation. After completing the investigation the agent gets (1−x)·i/mint experience, where x is agent's experience before the operation. His intelligence increases by (1−i)·i/mint.» — should i use pair int or individual int in each case? I assumed that for mint/i we use group i to make it faster, and for latter two formulas we use individual exp and int (calculation as if everyone completed the quest by himself...) Of course, judging by accuracy stat, which being used in a group makes it only worse (or at least not better), it's very likely i should also use other similar stats as group stats, but... 2. I'm also wondering about quest talk (negotiations), should i use group stats there at all? For kill, there's «The number of monster kinds (at most 50), after that for each monster kind: the minimal experience needed to kill a monster of this kind, minimal intelligence needed to kill a monster of this kind»; For investigation, there's a «minimal intelligence required to perform the investigation» given; But for negotiations, there's given «the minimal experience >>>of an agent<<< that can take part in negotiations» — does that mean that i should use group stats in 2 and 3, but not in 4? 3. For negotiations quest, if there's an agent with good exp (0.9) but bad wlk and drv (0.01 each) + agent with 0.99 drv and a car, to make it fast; but with slightly worse exp of 0.85; and the minimal exp required for negotiations is 0.8. So: if for question 2 above, i shouldn't use group stats in here, but only individual ones — then, are they both forced to take part in discussions, resulting in a time of 0.85exp usage; or 0.85exp guy can safely ignore the negotiations part? And if he does that, will he receive exp too in the end? UPD: 4. Agent A (0.9drv) and Agent B (0.8drv) go together in a car. A levels up driving after the quest. Does B too? 4.1. If he doesn't, then if A with 0.9drv and B with 0.9drv go to the quest (say, they're obliged to, because they have 0.5exp both, and monster requires 0.51, which would be met for a pair exp), then which one receives driving exp? UPD: 5. Should stats be rounded to 2 digits after modifying? So many questions, so little answers... Edited by author 03.06.2016 04:02 5. Should stats be rounded to 2 digits after modifying? big simulation spend one day+ and 700+ lines without seeing test data Please, help me with test 2. Can you say me, how much my answer differs from correct answer? Tell please something helpful to pass fourth test. Maybe it is a misunderstanding of statement. you must perform the quests in order, that they become available (not in order of appearance in input data) Must we perform the quests in the same order, that they were listed in input? The quests can be performed in а different order. All quests are performed as soon as they can be performed. If there are several quests available, the one that was received earlier is performed first. For "newagent" event: new agent coming to the organization with experience not less than retirement experience. It is not contradict the problem statement but can be misleading. To get right solution just ignore the fact that agent has come already tired. ...fixed by Admins? Edited by author 09.03.2010 11:22 another statement bug: "All other numbers are positive integers and do not exceed 10^6" but current distance passed for car equals to 0 (Test #1, #2) so: some numbers are not positive but not negative... Edited by author 12.03.2010 12:18 Aga. Another more sophisticated sample would be very helpful! It seems that all tests including Test 4 are correct. But still WA4... What the f... I missed? I suggest to exchange our tests and compare answers to find mistakes. Agreed Edited by author 24.02.2010 14:03 Problem is unlocked, you may submit solutions, but there still may be errors Edited by author 29.01.2010 18:11 Agent J can't start quest 1 because Agent K a little faster than J. What's going on...? The poltergeist... P.S. не понятно... Edited by author 18.09.2009 19:21 If I have such situation that current quest cannot be performed because of all agents are tired or existing agents not able to perform current quest. I skip all incoming quest(s) until new agent(s) are come in organization (or existing agents up their experience to able to perform skipped quest(s)). Then I try to assign new agent(s) to perform skipped quest(s). Question: can I face with such situation or it is guaranteed that all quests can be performed in the same order they are appear in input (maybe with some lag of course)? P.S. And what about if new agent(s) not come in organization but quests still pending at end of input? (maybe this situation is not present in tests) Statement: But, if agent finished quest <<possible with other agent>> and started other quest <<possible with other agent>> simultaneously, you are to write first message about finishing, and second about starting. e.g. 0001:01:01 Agent A finished quest 1. 0001:01:01 Agent A and agent B started quest 2. or 0001:01:01 Agent A and agent B finished quest 1. 0001:01:01 Agent A started quest 2. or 0001:01:01 Agent A and agent B finished quest 1. 0001:01:01 Agent B and agent C started quest 2. "All agent names, car type names, monster kind names, and CAR IDS contain ONLY letters of the English alphabet" But in sample test car ids contain digits: pq123bu, ab891ah and aa890bu. Please, write about bugs in this problem to timus_support@acm.timus.ru There is only one sentence about choosing car: "If there are several cars available, the car with the lexicographically smaller id is chosen". According to this rule agent K chose car with ID ab891ah. But agent J used car with ID pq123bu which lexicographically greater than ID aa890bu (car with this ID is also available). Edited by author 19.08.2009 01:41 Edited by author 19.08.2009 01:42 How must I understand the definition "all interval lengths are rounded to closest minute" - what is "interval length"?? interval between interesting events or from beginnig of quest or something else...? Can somebody explain me why monster was killed in "0000:03:04" ? 0000:00:43 Agent J started quest 2 using car pq123bu. 0000:02:41 Car pq123bu was broken. 0000:03:04 Agent J killed monster cockroach. 0000:05:26 Agent J finished quest 2. If I rounded only output time I get wrong killing time "0000:03:03", but if I rounded all time intervals I get incorrect final time "0000:05:27". Where is correct rounding? 1524. Men in Black Ограничение времени: 3.0 секунды Ограничение памяти: 64 МБ Всем известно, что только наличие людей в черном (MIB) сдерживает чужих от вторжения на Землю. Но недавно правительство узнало о MIB и решило начать отслеживать все их перемещения. Выяснилось, что MIB – сверхсекретная организация и состоит из нескольких агентов. Каждый агент имеет несколько особенностей: точность, интеллект, скорость пешего передвижения, опыт, навык вождения. Все особенности характеризуются числом в пределах от 0 до 1. Каждый секретный агент закодирован буквой от "A" до "Z", потому что его имя – страшная тайна. Когда новый агент приезжает в организацию, ему присваивается буква еще назначенная ни одному агенту, самая близкая к первой букве в имени агента. Если есть несколько букв, выбирается первая из них по алфавиту. Например, если в организации уже есть агенты "J", "K" и "L" , и прибыл новичок с именем "Killer", то он получит буквенное обозначение "I". MIB имеет несколько автомобилей, используемых агентами. Скорость агента за рулем равно его навыку вождения. Но некоторые специфичные автомобили требуют достаточного уровня опыта вождения у агента. То есть водить их может только агент, который имеет навык движения, не меньше некоторой предопределенной для данного типа автомобилей границы. Каждый автомобиль имеет свой ресурс - расстояние, которое он может проехать прежде, чем выйдет из строя. Во вселенной есть несколько видов монстров. Агент может убить монстра, если его опыт и интеллект больше или равны некоторым предопределенным значениям для этого вида монстров. Каждый вид монстров имеет уклончивость, и в зависимости от точности агента, требуется время, чтобы убить монстра. Агент, убивший монстра, получает при этом немного опыта. Есть четыре типа действий (квестов), которые выполняют агенты: 1. Патрулирование - от офиса до указанной точки и назад. Для патрулирования расстояние от офиса до указанной точки задано. 2. Убийство чудовища – добраться до чудовища, убить его и вернуться. Для такого действия Вам указывают расстояние к чудовищу и его тип. Время, которое требуется агенту с точностью «a» чтобы убить чудовище с уклончивостью «e» равняется «e/a». После этого агент дополнительно получает «(1-x)+m/maxx» опыта, где «x» - предыдущий опыт агента, «m» некоторое значение опыта для данного типа чудовищ, и «maxx» - теоретически максимальная величина опыта. Точность агента возрастает на величину «(1-a)+e/maxe», где «maxe» - максимальная теоретически возможная уклончивость чудовища. 3. Расследование - добраться до точки, где будет проводиться расследование, выполнить его и вернуться назад. При этом задается расстояние в точку расследования, и минимальный интеллект, требуемый от агента для выполнения расследование. Время, необходимое для выполнения расследования агентом с интеллектом «i» есть «mint/i», где «mint» - минимальное временя необходимое для выполнения этого расследования. После того, как расследование завершено, агент выполнивший его, получает дополнительно «(1?x)·i/mint» опыта, где «x» - опыт агента перед действием, также его интеллект возрастает на «(1?i)·i/mint». 4. Переговоры – дойти до точки переговоров, обсудить там горячие вопросы и вернуться назад. Задается расстояние от офиса до точки переговоров, и минимальный опыта агента, который может принять участие на переговорах. Время необходимое для агента с опытом «x», чтобы завершить дискуссию - равное «mint/x» где «mint» - минимальное время. После того, как переговоры завершились, агент получает дополнительно опыт «(1?x)·x/mint ». Каждое действие может выполнять один или два агента. Если два агента выполняют одно и то же действие, то по его завершению, характеристики обоих изменятся, как будто бы каждый из них выполнял действие самостоятельно. Агент может пройти в требуемую для выполнения действия позицию пешком, или проехать на автомобиле. Если автомобиль ломается в процессе езды, агент должен продолжить движение в требуемую точку пешком. Если поиски выполняется двумя агентами, они могут использовать один автомобиль для проезда. Следующий алгоритм используется, чтобы выбрать агента или пары агентов для выполнения действия. Агент (пара агентов) выбирается, так, чтобы действие выполнилось в течение минимального времени. Если есть несколько возможностей, следующее соединение правил используется: если возможно выбрать одного агента или пару агентов - один агент выбирается. Если есть два возможных агента, выбирается агент с лексикографически младшей буквы (для пар агентов - пары букв сравниваются по порядку). Если действие можно выполнить в течение того же времени, не используя автомобиль, автомобиль не будет использован. Если есть несколько автомобилей доступно, выбирается автомобиль с меньшим номером. Все действия заканчиваются, как только они будут выполнены. Если есть несколько действий, то первым выполняется то, которое было получено первым. После завершения действия, у выполнявшего его агента скорости пешей ходьбы возрастает на «(1?s)·d/maxd», где «s» - его пешая скорость до выполнения действия, «d» расстояние, которое он прошел в процессе выполнения, «maxd» - максимально возможное расстояние ходьбы. Если агент водил автомобиль, его навык вождения возрастает на «(1?z)·d/maxd», где «z» - предыдущий навык вождения этого агента. Когда пара агентов выполняет действия, то характеристики пары определяются, по следующим правилам: скорость пешей ходьбы пары определяется по минимальной для каждого агента. Навык вождения – по максимуму, точность пары – «(a1+a2)/2», опыт пары – «1?(1?e1)·(1?e2)», интеллект пары – «1?(1?i1)·(1?i2)». Следующие события могут произойти: новое задание может быть получено, новый агент может прибыть, новый автомобиль может быть куплен. Если опыт агента становится большим или равным некоторой встроенной величины, названной «пенсионный опыт» - агент уходит в отставку. Все интервалы времени в этой задаче измеряются в минутах, все интервалы округляются в ближайшую минуту, согласно общепринятым правилам округления. Исходные данные Все числа и слово во входных данных разделяются пробелами и/или переводом строки. Ввод содержит: ? Количество агентов (самое большее 26), сопровождающееся описанием агентов. Каждый агент описан следующими параметрами: имя, точность, скорость ходьбы, интеллект, опыт, навык вождения, назначенная буква. Все назначенные буквы - уникальны. Изначально опыт каждого агента меньше пенсионного порога. ? Количество типов автомобилей (максимум 50), после это для каждого типа автомобилей: минимальный навык необходимый для вождения данного типа, ресурс автомобиля (пробег до выхода из строя), имя типа. ? Количество автомобилей (самое большее 50), после это для каждого автомобиля указано: тип, пробег (не превышает максимальное значение для автомобилей этого типа), идентификатор. ? Количество типов чудовищ (самое большее 50), после это для каждого типа чудовищ указано: минимальный опыт, минимальный интеллект, с которым можно убить чудовище этого типа, уклончивость чудовищ этого типа, величина опыта получаемая после убийства чудовищ этого типа, и имя типа. ? Максимальное расстояние пешего прохода, максимальная уклончивость чудовищ, максимальный опыт для убийства чудовищ, пенсионный опыт. ? Количество событий в организации (самое большее 2000). Для каждого случая указано время его возникновения и параметры: ? Для нового агента, приходящего в организацию указано ключевое слово: "newagent". Дальше перечислено имя агента, его точность, пешая скорость, интеллект, опыт, навык вождения. Количество агентов никогда не превышает 26. ? Для нового купленного автомобиля: "newcar", тип автомобиля, текущий пробег, id. ? Для патрулирования: "quest run", расстояние из офиса к указанной точке. ? Для уничтожения чудовища: "quest kill", расстояние из офиса к чудовищу и тип чудовища. ? Для расследования: "quest findout", расстояние из офиса, минимально необходимый интеллект и минимальное время для расследования. ? Для переговоров: "quest talk" расстояние из офиса, минимально необходимый опыт и минимальное времени дискуссии. Все характеристики – числа с плавающей точкой, в рамках от 0 до 1 (не включая). Все другие числа являются положительными целыми и не превышают 1000000. Все имена агентов, типы автомобилей, типы чудовищ и идентификаторы автомобилей содержат только буквы английского алфавита, их длина не превышает 10. Все имена и идентификаторы - уникальные. Все события сортированы по времени, нет событий с одинаковым временем. Результат Выведите все интересные моменты в следующем формате: "dddd:hh:mm <description>", где "dddd:hh:mm" день, час и минута когда интересное событие происходит. Следующие моменты – интересны: ? "New agent <name> got a letter <letter>." ? "MIB bought a car of class <car type>." ? "Agent <letter1>[ and agent <letter2>] started quest <number>[ using car <car id>]." ? "Agent <letter1>[ and agent <letter2>] killed monster <monster kind>. ? "Car <id> was broken." () ? "Agent <letter1>[ and agent <letter2>] finished quest <number>." ? "Agent <letter> has tired." /* (Перевод: ? Новый агент <имя> получил букву <буква> ? Человек в черном купил автомобиль класса <тип автомобиля> ? Агент <буква1>[ и агент <буква2>], начали действие <номер действия>[ используя автомобиль <идентификатор автомобиля>]. ? (Агент <буква1>[ и агент <буква2>], убили чудовище <тип чудовища>. ? Автомобиль <идентификатор> был разбит. ? Агент <буква1>[ и агент <буква2>], завершили действие <номер>." ? Агент <буква1> ушел в отставку. */ Все действия, начиная с первого, перечислены в том порядке, в котором они получены. Если несколько интересных событий происходить одновременно, они должны быть указаны в той же последовательности, в какой они описаны выше. Но, если агент завершил действие и начал другое одновременно, сначала надо вывести сообщение об окончании действия и только потом о начале нового. Assume, that agent finished some mission at 12.001 seconds after start of the log, and new mission starts at 12 seconds. Can the agent participate in it? |
|