Чтение из файла чисел размером около 2 гб

160
30 апреля 2019, 20:50

Условие задачи таково, что сумма двух первых чисел может быть равна чуть меньше 2*(10^9), т.е. потребуется около 2 ГБ, а это больше ограничения в 16 МБ!!! Как обойти? Помогите решить.

Имя входного файла in.txt Имя выходного файла стандартный вывод Ограничение по памяти 16 мегабайт

В начале файла in.txt содержатся два целых числа. Если сложить их, то вы получите, позицию в файле, начиная с которой находится третье число, которое вам нужно вывести.

Формат входных данных Файл in.txt, сформированный по принципу, который описан выше. Гарантируется, что каждое из чисел целое и не превышает 10^9. Также гарантируется, что сумма первых двух чисел не будет отрицательным числом.

Примеры

Входные данные:

6 5 blah 25491

Выходные данные:

491

Задача решена, спасибо Harry, вот правильный код:

#include <iostream>
#include <fstream>
using namespace std;
int main(){
    ifstream infile;
    infile.open("in.txt", ios::in);
    int a, b, j = 0, pos1;
    //вывел два первых числа и сложил их
    infile >> a >> b;
    j = a+b;
    // потом, как Вы и сказали сдвинул
    infile.seekg(j, ios:: beg);
    infile >> pos1;
    cout << pos1;
    infile.close();
return 0;
}
Answer 1

Да в чем проблема? Считываете первое число, для совсем уж гарантии отсутствия переполнений - в long long int, второе, находите смещение, пользуетесь seekg, чтобы стать на нужное место в файле, читаете и выводите третье число...

Никаких проблем.

ifstream in("input.txt",ios::binary);
int pos1, pos2, num;
in >> pos1 >> pos2;
in.seekg(pos1+pos2);
in >> num;
cout << num;
READ ALSO
проблема с vars на Heroku

проблема с vars на Heroku

Использую JavaMailSender для активации учетной записи пользователя, с введенными вручную данными от почты в файле applicationpropperties приложение работает

160
Зачем нужен @ResponseBody?

Зачем нужен @ResponseBody?

Зачем использовать в рест-контроллере @ResponseBody в ответе, если можно обойтись без него? Например

164
Как сделать &ldquo;отскакивание&rdquo; в RecycleView вначале и в конце

Как сделать “отскакивание” в RecycleView вначале и в конце

Подскажите пожалуйста как сделать "отскакивание" в RecycleView вначале и в концеПример эффекта в GIF на первом фото

152
Как изменить диапазон углов свайпа

Как изменить диапазон углов свайпа

подскажите пожалуйста как изменить углы свайпов для горизонтального и вертикального? Вертикальный свайп надо сделать менее чувствительным...

128