Олимпиадная задача

1. Гость 24.04.13 14:45
Хотел попробовать свои силы в решении задачи олимпиадной, но ни получается понять саму суть решения. Подскажите, каким образом (методом) её решать?

Исходная ситуация
В информационной базе «1С:Бухгалтерии» имеются проводки за некоторый период ведения учета. Каждая проводка содержит корреспонденцию двух счетов и сумму. Счета могут иметь субсчета первого порядка в виде: <код синтетического счета>[.<код субсчета>] . Проводки с отрицательными суммами («сторно») отсутствуют.

Требуется
Разработать внешний отчет, в котором предлагается вариант разбиения всех счетов, представленных в проводках, на минимальное количество групп, каждая из которых содержит синтетические счета, которые не корреспондируют друг с другом ни в одной из проводок, имеющихся в информационной базе. При этом проводки, в которых корреспондируют одинаковые синтетические счета, а также проводки с нулевыми суммами учитывать не надо. Результат представить в виде отчета, форма которого приведена в примере.

Пример и полное условие задачи на странице - Пятая задача Кипукамайока

В приложении: файл с базой и наработка
Прикрепленные файлы:
Задание1.epf
1Cv8.1CD
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dusha0020 1120 24.04.13 15:30 Сейчас в теме
Задача-то олимпиадная. То есть алгоритмическая.
Я бы решал так:
Создать ТЗ с 3 столбцами: ГруппаДт, ГруппаКт,Сумма.
Выгрузить туда все проводки.
Свернуть по группам дебета и кредита.
Создать новую тз с колонкой ГруппаДт и ГруппаКт и Сумма, но заполнять ее добавляя группу дебета и все возможные группы кредита с суммами (там где они в этой корреспонденции есть). То есть если в первой таблице число строк N то во второй должно быть N^2 с суммами там где они есть.
Дальше сворачиваем вторую ТЗ так-же как и первую и обходим ее, выводя в отчет группы Дт и Кт где сумма по строке нулевая.
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот