Страница: 1 |
Вопрос: Победителям олимпиад! | Добавлено: 22.12.03 17:12 |
Автор вопроса: ![]() |
Я живу в Украине, в городе Тернополь.Недавно у нас проводилась городская олимпиада по программированию. Результаты пока не известны, но я уверен, что первое место не мое. Вся проблема в последнем задании (Ну не понимаю я его и все!). Может вы сделаете его. Привожу без изменений: ---------------Задание 4.Химия (45 баллов)--------- Дано N веществ и таблица их взаимодействий, т. е., a[i,j]=0, если i вещество не взаимодействует с j веществом и a[i,j]=k (1<=i,j,k<=N), если при их взаимодействии получается k вещество. В пробирку одно за другим насыпаются вещества.Оказавшись вместе, онм могут вступить в реакцию. Вновь созданное вещество, возможно, реагирует с тем, что лежит ниже его и. т. д. Известно, что реакция взаимодействия состоится мгновенно и только между двумя соседними шарами. ТЕХНИЧЕСКОЕ ЗАДАНИЕ Описать алгоритм, который определяет по заданной последовательности, которые вещества останутся в пробирке. Данные про взаимодействие веществ подаются в виде текстового файла input.txt, в первой строке которого указано количество N веществ (N<=10), а в следующих N задано по N чисел, определяющих таблицу взаимодействий. С клавиатуры вводится только порядок засыпания веществ. ПРИМЕР файл input.txt 3 032 301 210 При вводе с клавиатуры 1 2 3 Выход: 3 ------------------Конец---------- Примечание: это задание делали и 10 и 11 класники (я в 10ом). |
Ответы | Всего ответов: 12 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 22.12.03 17:35 |
Чего ж тут непонятного? При засыпании вещества в пробирку проверяешь, реагирует ли оно с тем, которое снизу. Если нет, идешь дальше. Если да, проводишь реакцию, т.е. заменяешь 2 слоя на один, проверяешь то же самое дальше, пока реакция не прекратится. И так для всех веществ. Что в этой задаче сложного? (странная у вас какая-то городская олимпиада...) |
Номер ответа: 2 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 22.12.03 17:41 |
А ты пример напиши |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 22.12.03 18:28 |
С грехом пополам, но этот код, накатанный за 15 минут (долго вспоминал, как Split работает Private Sub Command1_Click() Dim a(100, 100), l() As String, k() As String, p(100), res(100) f = FreeFile Open "c:\win98\рабочий стол\input.txt" For Input As f Line Input #f, n For i = 1 To n Line Input #f, s l() = Split(s, " ") For j = 0 To n - 1 a(i, j + 1) = Val(l(j)) Next Next Close k() = Split(Text1, " ") sp = 0 For i = 0 To UBound(k) p(sp) = Val(k(i)) If sp > 0 Then Do Until a(p(sp), p(sp - 1)) = 0 p(sp - 1) = a(p(sp), p(sp - 1)) sp = sp - 1 If sp = 0 Then Exit Do Loop End If sp = sp + 1 Next For i = 0 To sp - 1 res(p(i)) = 1 Next d = "" For i = 1 To 100 If res(i) = 1 Then d = d & i & vbCrLf Next MsgBox d End Sub Мне прак по химии оформлять надо, а я тут задачи по программингу решаю |
Номер ответа: 4 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 22.12.03 19:02 |
Не работает (по крайней мере поставленных задач не решает) Обясни мне одно: структуру input.txt. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 22.12.03 19:26 |
3 0 3 2 3 0 1 2 1 0 В текстовое поле вводишь 1 2 3 Все работает. |
Номер ответа: 6 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 22.12.03 19:49 |
Я не понимаю структуру input.txt, может обясниш? |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() Вопросов: 72 Ответов: 147 |
Профиль | Цитата | #7 | Добавлено: 22.12.03 20:20 |
А где ты тут структуру input.txt увидел? input.txt - это файл.... |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 22.12.03 20:43 |
Какая еще структура input.txt??? 3 - линейный размер массива Дальше сам массив. Если n реагирует с m, то a[n][m] содержит продукт p, иначе 0. Если уж ты и задание не понял, стоит ли вообще браться за олимпиады? |
Номер ответа: 9 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 22.12.03 20:54 |
ТОГДА ЧТО ЗНАЧИТ ЭТА СТРОКА: 3 0 13 ЭТО ЧТО?0 ЭТО ЧТО?1 ЭТО ЧТО?Где вещества а где результат взаимодействия? |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 22.12.03 21:01 |
Мне ответить или это шутка такая? a[1][1]=0 a[1][2]=3 a[1][3]=2 a[2][1]=3 a[2][2]=0 a[2][3]=1 a[3][1]=2 a[3][2]=1 a[3][3]=0 |
Номер ответа: 11 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 22.12.03 23:07 |
Бли-и-и-и-и-и-и-н!!!!!!!!!!!!!! Вот ты меня просветил!!! И как я не догадался! Спасибо, учту на следующий раз. |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 22.12.03 23:59 |
Учти уж, пожалуйста. Но в олимпиадах тебе рановато участовать, имхо. |
Страница: 1 |
|