ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1639. Шоколад 2

Скорость негодует
Послано Aleksandr 16 янв 2017 02:13
Народ, кто может указать на часть моего кода которая тормозит алгоритм? Чистил как мог, не смог выйти за 0.125 секунд

import java.util.Scanner;
public class Timus {
        public static void main (String[] args)
        {
            Scanner in = new Scanner(System.in);

            byte m = in.nextByte(), n = in.nextByte();

            System.out.println( (m*n-1)%2==0 ? "[second]=:]" : "[:=[first]");

            in.close();

        }
}
Re: Скорость негодует
Послано Oleg Baskakov 16 янв 2017 04:49
Всё нормально, просто джава медленная. Вон у вас задача a+b за 0.109.
Re: Скорость негодует
Послано Aleksandr 16 янв 2017 15:12
Спасибо за пояснение;) а каким же образом люди в топе выходят за 0.05 секунд? Вон первое место в А+B аж за 0.015 работает! Наверняка люди обходят стороной медленные методы и операции. Может вы знаете ресурс где можно почитать об этом? Поиск в гугле ни привёл ни к чем
Re: Скорость негодует
Послано Oleg Baskakov 16 янв 2017 23:11
К сожалению, не могу сказать точно. Тут есть несколько моментов.
Во-первых, более ранняя джава была быстрее, что можно увидеть по тому, что в основном большинство сабмитов, где указано java 1.5 / java 1.6, быстрее, чем те, в которых java 1.8. Конечно, этот сабмит а+б за 0.015 как раз на джаве 1.8, для меня это конечно странно. Может в коде в опциях был выставлен какой-то ключ для использования более ранней версии или типа того...
Во-вторых, "общий" совет, который я могу дать — используйте BufferedReader (и если надо, StreamTokenizer) вместо Scanner'a, потому что последний в джаве обычно медленнее. (см. также код внизу страницы http://acm.timus.ru/help.aspx?topic=java&locale=ru). Хотя, конечно, для программ с маленьким объёмом входных данных разница не должна быть сильно критичной, но там где надо считывать со входа мегабайты — она очень ощутима.