Здравствуйте.
Никак не составлю алгоритмик. Задачка такая:
есть список номеров по АТС'ам в виде
нач.номер, конечный номер, АТС
например
11-00-00, 11-99-99, АТС 11
11-00-00, 11-09-99, АТС 110
11-10-00, 11-39-99, АТС 118
12-30-00, 12-39-99, АТС 123
12-36-18, 12-39-17, АТС 234
005, -, АТС 1
006, -, АТС 1
11-09-25, -, АТС Орг. 1
11-09-26, -, АТС Орг. 1
Надо сгенерить список экстеншенов -- префиксов (без тире), однозначно определяющих данную АТС, они могут быть уточняющими -- в случае, если префикс некоего номера совпадает с несколькими префиксами, то он "выигрывает" префикс с бОльшей длиной, т.е. список для данного случая:
005, АТС 1
006, АТС 1
11, АТС 11
110, АТС 110
110925, АТС Орг. 1
110926, АТС Орг. 1
111, АТС 118
112, АТС 118
113, АТС 118
123, АТС 123
123618, АТС 234
123619, АТС 234
12362, АТС 234
12363, АТС 234
12364, АТС 234
12365, АТС 234
12366, АТС 234
12367, АТС 234
12368, АТС 234
12369, АТС 234
1237, АТС 234
1238, АТС 234
12390, АТС 234
123910, АТС 234
123911, АТС 234
123912, АТС 234
123913, АТС 234
123914, АТС 234
123915, АТС 234
123916, АТС 234
123917, АТС 234
И, соответственно, звонок с номера 12-27-14 был с АТС 234, а с номера 12-31-18 -- с АТС 123. Совсем труба с диапазонами, начинающимися и/или заканчивающимися на некратных 10 номерах...