mmap противоречит ограничению по памяти (весь файл нельзя мэпнуть).
Не противоречит. Нужна ведь не память, а адресное пространство.
Да. Ладно, пусть valexey прояснит. Но я подозреваю, что оно все равно быстро не будет. Если только в частном случае - когда памяти в ОС реально дофига (под файловый кэш), а задче искуственно выставлено ограничение в размере хипа.
Проверить можно экспериментально :-) А так - использовать mmap/CreateFileMapping/etc можно. Обломится - ваши проблемы.
Моя имха на эту тему - на 32битной машине под файло не всегда адресного пространства хватит. На 64битной машине - должно хватить (кстати, реальное адресное пространство на 64битной машине не 64бита).
Если в задаче сказано что RAM у нас 128Мб, то и файловый кеш будет не более 128Мб. Тестовое окружение это дело смоделирует как надо.
Да, я подумал, тесты будут гоняться с разными размерами файла. Чтобы у ограниченных решений (говорят например в А2 нельзя работать с файлами больше 2 гиг) были хоть какие-то шансы хоть как-то показать себя.
Задача не только соревновательная, но и исследовательская.