В архиве соревнований вы можете заметить, что почти все сорвенования имеют два вида: Virtual (виртуальное соревнование) и Upsolving (дорешивание). Виртуальное сорвенование будет иметь для вас свою обычную длительность, в нём решения других участников, уже игравших его раньше, будут появляться по мере того, как они сдавались во время игр тех участников. После того, как виртуальное сорвенование закончилось, вы уже не сможете сдавать туда задачи. Дорешивание — это просто бесконечно длинное соревнование, в которое можно заходить в любое время и сдавать туда решения, которые не получилось написать на обычном или виртуальном туре.
Здесь находится список вердиктов, которые может получить ваше решение. Мы сообщаем номер теста, но не сообщаем расход времени и памяти.
В системе используется стандартный консольный ввод-вывод (stdin/stdout).
Ваша программа может выводить в поток ошибок (stderr). Например, это может быть отладочная информация. Тестирующая система игнорирует поток ошибок, так что это не может стать причиной вердиктов WA или PE. Однако надо помнить, чтоб на вывод тратится время, поэтому, если вы будете выводить слишком много, вы рискуете получить вердикт TL.
Пожалуйста, не используйте в своих исходниках нестандартные символы. К ним, в том числе, относятся русские буквы. Если вы отошлете подобное решение, вам придет вердикт CE.
На сервере установлена переменная ONLINE_JUDGE. С ее помощью можно различать запуск программ на сервере и на вашем локальном компьютере. Например, если вы предпочитаете пользоваться файловым вводом и выводом вместо стандартного, вы можете использовать для этого переменную ONLINE_JUDGE. Чтобы подробнее показать, как это можно использовать, приведем примеры для каждого языка программирования.
Pascal:
{$IfDef ONLINE_JUDGE} writeln('This text will be printed on the server'); {$Else} writeln('This text will be printed on your local computer'); {$EndIf}
C++:
#ifdef ONLINE_JUDGE printf("This text will be printed on the server\n"); #else printf("This text will be printed on your local computer\n"); #endif
Java:
boolean ONLINE_JUDGE = System.getProperty("ONLINE_JUDGE") != null; if (ONLINE_JUDGE) { System.out.println("This text will be printed on the server"); } else { System.out.println("This text will be printed on your local computer"); }
C#:
#if ONLINE_JUDGE Console.WriteLine("This text will be printed on the server"); #else Console.WriteLine("This text will be printed on your local computer"); #endif
Вы можете не волноваться насчет размера стека: он в тестирующей системе установлен максимально возможным.
Тестирующая система работает на операционной системе Linux, так что перевод строки состоит из одного символа LF ('\n', ASCII-код 10). В Windows переводы строки состоят из двух символов CR и LF ('\r' и '\n', ASCII-коды 13 и 10). Будьте внимательны, если это влияет на ваше решение.
Версия компилятора — Free Pascal 2.6.4
Строка компиляции:
fpc -dONLINE_JUDGE -O2 -Xs -Sgic -viwn -Mdelphi -XS [src] -o [out]
Пример решения задачи A+B:
var a, b: longint; begin read(a, b); writeln(a + b); end.
Версия компилятора — GNU C++ 5.3.1
Строка компиляции:
g++ -std=c++11 -Wall -O2 -DONLINE_JUDGE -fno-optimize-sibling-calls -fno-strict-aliasing -static [src] -o [out] -lm
В некоторых контестах также доступен компилятор языка C — GNU C 5.3.1. Все сказанное выше и ниже про C++ верно и для C, если это возможно. Тем не менее, если вы по какой-то причине любите решать задачи на C, мы рекомендуем вам как можно скорее прекратить это бесполезное занятие и начать писать на C++.
Стоит обратить внимание на ввод и вывод 64-битных целых чисел функциями scanf и printf. Спецификатор "%I64d" не работает, используйте спецификатор "%lld", например:
long long x; scanf("%lld", &x); printf("%lld", x);
unsigned long long y; scanf("%ulld", &y); printf("%ulld", y);
Примеры решения задачи A+B:
#include <cstdio> int main() { int a, b; scanf("%d%d", &a, &b); printf("%d\n", a + b); }
#include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; cout << a + b << "\n"; }
Обратите внимание, что ввод-вывод через cin / cout работает медленнее, чем через scanf / printf. Так что если в задаче требуется считывать большие объемы данных, сразу используйте scanf / printf.
Версия Java — 1.8.0_73
Строка запуска:
java -DONLINE_JUDGE -Xmx512M -Xss256M -Duser.language=en -Duser.region=US -Duser.variant=US -jar [jar]
В некоторых тестирующих системах есть ограничения на имя класса, использование вложенных классов и т.д. У нас этого нет: вы можете использовать любое имя классов, любое количество вложенных классов. Локаль автоматически выставлена как "en-US", так что вывод чисел с плавающей точкой через, например, System.out.println или PrintWriter.println будет работать правильно (если по умолчанию установлена русская локаль, вместо десятичной точки будет отображаться запятая).
Примеры решения задачи A+B:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int a = in.nextInt(); int b = in.nextInt(); System.out.println(a + b); } }
Однако класс java.util.Scanner очень медленный, и с ним можно получить вердикт TL. Поэтому мы приведем еще один механизм ввода-вывода, быстрый и самый популярный.
import java.io.*; import java.util.*; public class Main { private static BufferedReader in; private static StringTokenizer tok; private static PrintWriter out; private static String readToken() throws IOException { while (tok == null || !tok.hasMoreTokens()) { tok = new StringTokenizer(in.readLine()); } return tok.nextToken(); } private static int readInt() throws IOException { return Integer.parseInt(readToken()); } public static void main(String[] args) throws IOException { in = new BufferedReader(new InputStreamReader(System.in)); out = new PrintWriter(System.out); int a = readInt(); int b = readInt(); out.println(a + b); in.close(); out.close(); } }
Версия компилятора — Mono C# 4.2.1.0
Строка компиляции:
gmcs -define:ONLINE_JUDGE -optimize+ [src] -out:[out]
Пример решения задачи A+B:
using System; public class Solution { public static void Main() { string[] tokens = Console.ReadLine().Split(' '); int a = int.Parse(tokens[0]); int b = int.Parse(tokens[1]); Console.WriteLine(a + b); } }
Стоит учитывать, что ввод и вывод с использованием Console.ReadLine() и Console.WriteLine() может быть медленный, и в некоторых случаях надо писать собственную реализацию. Также, один из способов ускорить вывод - добавлять выходные данные в StringBuilder, а потом один раз вывести этот StringBuilder.
Просматривая решения некоторых участников, жюри убедилось в том, что не все знают, что, оказывается, существуют типы данных для 64-битных целых чисел. Поэтому мы решили опубликовать список всех числовых типов данных.
Тип данных | Размер | Диапазон значений |
shortint | 1 байт | [-128 … 127] |
smallint | 2 байта | [-32768 … 32767] |
longint | 4 байта | [-2147483648 … 2147483647] |
int64 | 8 байт | [-9223372036854775808 … 9223372036854775807] |
Тип данных | Размер | Диапазон значений |
byte | 1 байт | [0 … 255] |
word | 2 байта | [0 … 65535] |
longword | 4 байта | [0 … 4294967295] |
qword | 8 байт | [0 … 18446744073709551615] |
Тип данных | Размер | Диапазон значений | Точность |
single | 4 байта | [1.5E-45 … 3.4E38] | 7-8 знаков |
double | 8 байт | [5.0E-324 … 1.7E308] | 15-16 знаков |
extended | 10 байт | [1.9E-4932 … 1.1E4932] | 19-20 знаков |
Тип данных | Размер | Диапазон значений |
char | 1 байт | [-128 … 127] |
short | 2 байта | [-32768 … 32767] |
int | 4 байта | [-2147483648 … 2147483647] |
long long | 8 байт | [-9223372036854775808 … 9223372036854775807] |
Тип данных | Размер | Диапазон значений |
unsigned char | 1 байт | [0 … 255] |
unsigned short | 2 байта | [0 … 65535] |
unsigned int | 4 байта | [0 … 4294967295] |
unsigned long long | 8 байт | [0 … 18446744073709551615] |
Тип данных | Размер | Диапазон значений | Точность |
float | 4 байта | [1.5E-45 … 3.4E38] | 7-8 знаков |
double | 8 байт | [5.0E-324 … 1.7E308] | 15-16 знаков |
long double | 12 байт | [1.9E-4932 … 1.1E4932] | 19-20 знаков |
Тип данных | Размер | Диапазон значений |
byte | 1 байт | [-128 … 127] |
short | 2 байта | [-32768 … 32767] |
int | 4 байта | [-2147483648 … 2147483647] |
long | 8 байт | [-9223372036854775808 … 9223372036854775807] |
Беззнаковых типов в Java нет.
Тип данных | Размер | Диапазон значений | Точность |
float | 4 байта | [1.5E-45 … 3.4E38] | 7-8 знаков |
double | 8 байт | [5.0E-324 … 1.7E308] | 15-16 знаков |
Тип данных | Размер | Диапазон значений |
sbyte | 1 байт | [-128 … 127] |
short | 2 байта | [-32768 … 32767] |
int | 4 байта | [-2147483648 … 2147483647] |
long | 8 байт | [-9223372036854775808 … 9223372036854775807] |
Тип данных | Размер | Диапазон значений |
byte | 1 байт | [0 … 255] |
ushort | 2 байта | [0 … 65535] |
uint | 4 байта | [0 … 4294967295] |
ulong | 8 байт | [0 … 18446744073709551615] |
Тип данных | Размер | Диапазон значений | Точность |
float | 4 байта | [1.5E-45 … 3.4E38] | 7-8 знаков |
double | 8 байт | [5.0E-324 … 1.7E308] | 15-16 знаков |
Time on Server: 22.04.2021 14:46:53 | Samara State Aerospace University © 2012 — 2021 |