+++++ python3 ./platz-StackFill-stat.py +++++ 01: 77 144 221 19301 02: 66 31 97 19483 03: 80 130 211 19728 04: 164 97 261 19348 05: 112 10 122 19136 06: 76 79 155 19204 07: 252 424 677 19844 08: 1831 1933 3765 22784 09: 9837 15326 25163 45366 10: 6456 16962 23419 43904 11: 8698 26959 35657 56234 12: 9320 33907 43227 64686 13: 18099 35334 53433 74742 14: 18550 50868 69418 90220 15: 59514 102968 162482 185500 16: 52206 134257 186463 209630 17: 57902 171484 229387 252081 18: 256791 428839 685630 716782 19:- 20:- Всего тестов: 20 Успешно: 19 Ошибок: 1 Процент успеха: 95.00%
Дан текстовый файл, содержащий журнал результатов тестирования решений олимпиадных задач. Пример описания единичного решения в текстовом файле демонстрируется справа.
Первая строка идентифицирует решение, всегда предваряется и завершается 5 знаками "+". Следующие 20 строк хранят информацию о времени, затраченном на обработку каждого теста. Если после номера теста следует знак "-", это означает ошибку прохождения данного теста (неверный результат, выход решения за ограничения по времени или памяти). В противном случае решение содержит время в микросекундах, затраченное программой на 1) загрузку данных задачи, 2) обработку данных задачи, 3) полное выполнение кода программы, 4) запуск, выполнение и завершение работы программы.
Файл может содержать произвольное количество блоков решений. Если существуют несколько блоков с одним идентификатором, это означает, что соответствующее решение было протестировано неоднократно.
Задача заключается в разработке программы для получении усредненной информации о тестировании каждого решения и сохраненния результатов в текстовом файле. Программа должна запускаться с двумя параметрами - именем исходного и целевого файлов. Шаблон программы и основного модуля прилагается. Корректность работы своей программы можно проверить на реальном наборе тестов и результате их обработки.
Пример исходного файла | Пример целевого файла |
---|---|
+++++ python3 ./platz-StackFill-stat.py +++++ 01: 77 144 221 19301 02: 66 31 97 19483 03: 80 130 211 19728 04: 164 97 261 19348 05: 112 10 122 19136 06: 76 79 155 19204 07: 252 424 677 19844 08: 1831 1933 3765 22784 09: 9837 15326 25163 45366 10: 6456 16962 23419 43904 11: 8698 26959 35657 56234 12: 9320 33907 43227 64686 13: 18099 35334 53433 74742 14: 18550 50868 69418 90220 15: 59514 102968 162482 185500 16: 52206 134257 186463 209630 17: 57902 171484 229387 252081 18: 256791 428839 685630 716782 19:- 20:- Всего тестов: 20 Успешно: 18 Ошибок: 2 Процент успеха: 90.00% +++++ ./platz-StackFill-stat +++++ 01: 7 8 16 3008 02: 5 3 9 3463 03: 6 4 11 2940 04: 9 5 15 2742 05: 4 1 6 2784 06: 8 4 13 2970 07: 26 39 66 3145 08: 123 65 189 3330 09: 607 619 1227 4313 10: 394 801 1197 4406 11: 653 1558 2212 6579 12: 1377 1783 3161 7635 13: 1491 2355 3847 8228 14: 1310 2780 4090 8283 15: 4091 4875 8966 13336 16: 2668 6541 9210 12728 17: 2523 4638 7162 10268 18: 10231 11688 21919 25768 19: 9926 20199 30126 33630 20: 10262 37284 47547 51203 Всего тестов: 20 Успешно: 20 Ошибок: 0 Процент успеха: 100.00% +++++ python3 ./platz-StackFill-stat.py +++++ 01: 77 67 144 19242 02: 78 33 111 19286 03: 81 69 151 19805 04: 124 117 242 20489 05: 62 11 73 19623 06: 76 83 160 19427 07: 309 443 753 20076 08: 1825 1908 3734 23340 09: 10404 16849 27254 47776 10: 6533 19302 25836 46328 11: 8189 25892 34082 55620 12: 9185 33560 42745 63440 13: 21091 48997 70089 91615 14: 19902 54394 74297 96230 15: 51027 87528 138556 161138 16: 40386 104553 144940 165943 17: 55666 172633 228300 251004 18: 213305 356749 570055 599800 19: 211593 599624 811217 838687 20:- Всего тестов: 20 Успешно: 19 Ошибок: 1 Процент успеха: 95.00% |
+++++ python3 ./platz-StackFill-stat.py +++++ Обнаружено решений: 2 1: 77 105 182 19271 Ошибок: 0 2: 72 32 104 19384 Ошибок: 0 3: 80 99 181 19766 Ошибок: 0 4: 144 107 251 19918 Ошибок: 0 5: 87 10 97 19379 Ошибок: 0 6: 76 81 157 19315 Ошибок: 0 7: 280 433 715 19960 Ошибок: 0 8: 1828 1920 3749 23062 Ошибок: 0 9: 10120 16087 26208 46571 Ошибок: 0 10: 6494 18132 24627 45116 Ошибок: 0 11: 8443 26425 34869 55927 Ошибок: 0 12: 9252 33733 42986 64063 Ошибок: 0 13: 19595 42165 61761 83178 Ошибок: 0 14: 19226 52631 71857 93225 Ошибок: 0 15: 55270 95248 150519 173319 Ошибок: 0 16: 46296 119405 165701 187786 Ошибок: 0 17: 56784 172058 228843 251542 Ошибок: 0 18: 235048 392794 627842 658291 Ошибок: 0 19: 211593 599624 811217 838687 Ошибок: 1 20: -1 -1 -1 -1 Ошибок: 2 +++++ ./platz-StackFill-stat +++++ Обнаружено решений: 1 1: 7 8 16 3008 Ошибок: 0 2: 5 3 9 3463 Ошибок: 0 3: 6 4 11 2940 Ошибок: 0 4: 9 5 15 2742 Ошибок: 0 5: 4 1 6 2784 Ошибок: 0 6: 8 4 13 2970 Ошибок: 0 7: 26 39 66 3145 Ошибок: 0 8: 123 65 189 3330 Ошибок: 0 9: 607 619 1227 4313 Ошибок: 0 10: 394 801 1197 4406 Ошибок: 0 11: 653 1558 2212 6579 Ошибок: 0 12: 1377 1783 3161 7635 Ошибок: 0 13: 1491 2355 3847 8228 Ошибок: 0 14: 1310 2780 4090 8283 Ошибок: 0 15: 4091 4875 8966 13336 Ошибок: 0 16: 2668 6541 9210 12728 Ошибок: 0 17: 2523 4638 7162 10268 Ошибок: 0 18: 10231 11688 21919 25768 Ошибок: 0 19: 9926 20199 30126 33630 Ошибок: 0 20: 10262 37284 47547 51203 Ошибок: 0 |