АВТ
Language:

Remote Training on Programming

Problems On-line status Contests FAQ
For authors:
Register  ||  Login
 
Hello, Guest! Login or register.

Решение задач на Java

Программа на Java должна содержать только один public класс с произвольным именем, который должен содержать метод:
public static void main(String[] args)
Также программа может содержать любое число вложенных и глобальных не public классов.

Пример решения задачи A+B:
import java.io.*;
import java.util.*;

public class a_plus_b
{
   public static void main(String[] args)
   {
      Scanner in = new Scanner(System.in);
      PrintWriter out = new PrintWriter(System.out);

      int a = in.nextInt();
      int b = in.nextInt();
      out.println(a + b);
      out.flush();
   }
}
Программы на Java работают несколько медленнее, чем написанные на других языках, компилируемых в машинный код. Однако, для большинства задач в проверяющей системе верные решения проходят с большим запасом по времени и вполне успешно могут быть реализованы на Java. При этом всё же желательно учитывать, что:
* класс Scanner достаточно удобен, но работает медленно. Поэтому его следует использовать для чтения небольших входных данных.
* класс BufferedReader работает достаточно быстро. Его удобно использовать в связке с StringTokenizer или StreamTokenizer.
Вот соответствующий пример решения задачи A+B:
import java.io.*;
import java.util.*;

public class Main
{
   public static void main(String[] args)
   {
      StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
      PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

      try{
        in.nextToken();
        int a = (int) in.nval;
        in.nextToken();
        int b = (int) in.nval;
        out.println(a + b);
        out.flush();

      }
      catch (IOException e) {
        throw new Error();
      }
 
   }
}

Для корректного считывания/записи вещественных чисел, содержащих десятичную точку, на сервере уже установлена соответствующая локаль. Попыка явной установки локали по умолчанию приведёт к ошибке нарушения безопасности (возможно, это потом будет устранено).

Для корректной работы с символами с кодами больше 127 нужно явно указывать набор символов - например, так:
Scanner scanner = new Scanner(System.in, "ISO-8859-1");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, "ISO-8859-1"));
PrintWriter writer = new PrintWriter(new OutputStreamWriter(System.out, "ISO-8859-1"));
We can all benefit by doing occasional "toy" programs, when artificial restrictions are set up, so that we are forced to push our abilities to the limit. The art of tackling miniproblems with all our energy will sharpen our talents for the real problems. Donald E. Knuth.
time generating 0.109 sec.
© Copyright VSTU, AVT, Nosov D.A.