Задать вопрос
Din7
@Din7
Пытаюсь программировать, CGmaster - ломастер

Как быстрее считать данные из стандартного потока?

Доброго времени суток :) Помогите новичку
Пишу топологическую сортировку.
В одном из тестов ограничение по времени 3 секунды, количество графов 1000 и 500 ребер (соответственно также 500 пар чисел, означающих начало и конец ребра).
Для сортировки использую матрицу смежностей matr, в которую записываю 1 , если существует такое ребро из i - ого ребра в j - ое. Cчитывание i и j идет целых 7 секунд :-( Не могу придумать более оптимальный вариант. Может можно чем-нибудь заменить scanf?
Вот кусочек кода:
int** readbond( int** matr)
{
	int i, j;
	while (scanf("%d%d", &i, &j))
	{
		matr[i ][j] = 1;
	}
	return matr;
}
  • Вопрос задан
  • 182 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Alexander1705
habrahabr.ru/post/246257
Здесь в основном для С++, но 6-ой вариант должен работать для С.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы