Блин, Мотто, ну ты же подкованный гондурасец, намекаешь тебе намекаешь...АццкоМото wrote: Да нельзя 3*10^10 уложить в 10 десятичных знаков, сколько можно! Давайте вообще предположим, что номера двухзначные, ага, еще легче будет, ура, 7 бит хватит!!! Гениально, блдж
Пусть номера 10тизначные, то бишь от 0-000-000-000 до 9-999-999-999. Общее количество - 10.000.000.000
Захерачиваем bit array длиной 10.000.000.000 бит (итого ~ 1.25 гига), делаем один проход по исходному файлу, читаем записи типа
СамСуньХуй - номер (N) 3-141-592-653. В битном массиве взводим бит в полиции N в единичку и продолжаем так же читать до конца файла.
Прочитали - забыли нах про файл.
И когда на входе приходит номер (K) 2-718-281-828 - просто смотрим, взведен ли бит в массиве в позиции K или нет. Все.