Скачать Java-шаблон

Шаблон позволяет быстро считывать данные с потока ввода (консольного или файлового).

Для ввода данных с консоли и вывода на консоль следует в функции run() использовать код:

            in   = new FastScanner();
            out = new PrintWriter(System.out);

Для ввода данных из файла (например, sum.in) и вывода в файл (например, sum.out) следует в функции run() использовать код:

            in   = new FastScanner(new File("sum.in"));
            out = new PrintWriter(new File("sum.out"));

Код решения задачи следует писать в функции solve().

Для чтения с потока ввода могут быть использованы следующие функции:

String next() считать следующую строку либо до пробела либо до символа перевода строки (что раньше встретится в тексте)
String nextLine() считать следующую строку целиком до символа перевода строки
int nextInt() считать следующее целое типа int
long nextLong() считать следующее целое типа long
double nextDouble() считать следующее число с плавающей точкой типа double
int[] nextIntArray(int size) считать следующий массив длиной n целых чисел типа int
long[] nextLongArray(int size) считать следующий массив длиной n целых чисел типа long
BigInteger nextBigInteger() считать следующий число типа BigInteger для работы с большими числами
Point nextIntPoint() считать следующую точку двумерного евклидова пространства типа Point с целыми координатами
Point[] nextIntPointArray(int size) считать следующий массив длиной n точек двумерного евклидова пространства типа Point с целыми координатами
List<Integer>[] readGraph(int v, int e, boolean undir) считать следующий граф,  состоящий из n вершин и e ребер. Установленное значение undir = true означает, что будет возвращен неорентированный граф