АВТ
Language:

Remote Training on Programming

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

Часто задаваемые вопросы (FAQ)

Вопрос:

Что представляет собой система, для чего она предназначена?

Ответ:
Смотрите здесь
Вопрос:

Как отправлять задачи в систему?

Ответ:
Ваша програма должна считывать входные данные со стандартного потока ввода и выводить результаты в стандартный поток вывода.
Не исключено, что в условиях некоторых задач, взятых с прошедших олимпиад, говорится о входных и выходных файлах. Тем не менее, ваша программа должна работать только со стандартными потоками!

Пример программы на Pascal для решения задачи №1 "A+B":
var i,j:integer;
begin
   ReadLn(i,j);
   WriteLn(i+j)
end.
Пример аналогичной программы на C++:
#include <iostream.h>
int main(void)
{
  int a,b;
  cin>>a>>b;
  cout<<a+b;
  return 0;
}

Обратите внимание:
  • ваша программа не должна выводить ничего лишнего, типа подсказок "введите A и B:";
  • не используйте модуль crt в Pascal и conio.h в C++;
  • программа на C++ должна обязательно завершаться "return 0;"

Вопрос:

В процессе отладки входные данные часто удобнее считывать из файла. Как это делать?

Ответ:
На Pascal в начале программы достаточно написать строчку:
assign(input,'input.txt'); reset(input);
В результате при вводе данные будут читаться не с клавиатуры, а с файла 'input.txt'. При отправке решения строчку нужно закомментировать.
Аналогично, на C++ в начале функции main достаточно написать:
freopen("input.txt","r",stdin);
и подключить заголовочный файл stdio.h
Вопрос:

Что означает сообщение "Security Violation (Нарушение безопасности)"?

Ответ:
Проверяющая система отслеживает вызовы из вашей программы функций операционной системы, и в случае вызова запрещенной функции (работа с файлами, сокетами и т.п.) прерывает выполнение программы и выдаёт соответствующее сообщение.
В текущей версии системы иногда возможна выдача такого сообщения, когда программа аварийно завершается (и на самом деле должно быть "Runtime error (Ошибка выполнения)".

Вопрос:

Что означает сообщение "Presentation Error (Ошибка представления)"?

Ответ:
Это означает, что формат вывода вашей программы не соответствует указанному в условию задачи - например, программы выдала строку вместо числа или два числа вместо одного и т.п. Вообще, что считать неправильным ответом, а что - ошибкой представления, вопрос неоднозначный и для каждой задачи определяется автором её проверящей программы. Обратите внимание! Попадаются задачи, где проверяющая программа особо строго контролирует формат вывода и выдаёт ошибку представления даже за лишний пробел в конце вывода или за лишнюю пустую строку, поэтому желательно привыкать сразу писать код, не выводящий ничего лишнего.
Вопрос:

Что делать, если в программе большая глубина рекурсивных вызовов, и программа аварийно завершается из-за переполнения стека?

Ответ:
По умолчанию размер стека программы равен 1 мегабайт. Для его увеличения в Pascal нужно поставить, например, такую строчку:
{$M 16777216}
Тем самым размер стека будет равен 16 мегабайт.
Для Borland C++ размер стека уже настроен в системе и составляет 64 мегабайта.
Для Visual C++ можно вставить в программу директиву #pragma comment(linker, "/STACK:16777216") - в примере размер стека устанавливается равным 16 мегабайт.
Для Java размер стека уже установлен равным 64 мегабайта.
Вопрос:

Как правильно считывать входные данные, если неизвестно заранее их количество?

Ответ:
 PascalC++
Считывание целых чисел:
var
  x: integer;
...
while not seekeof do
begin
  read(x);
  ...
end;
int x;
while (cin>>x) {
  ...
}




Считывание символов
var 
  c: char;
...
while not eof do
begin
   read(с);
  ...
end;
char c;
while (cin.get(c))
{
   ...
}



Считывание строк
var line: string;
...
while not eof do
begin
   readln(line);
   ...
end;
char line[1000];
while (cin.getline(line,1000))
{
 ...
}



Вопрос:

Как на своем компьютере оценить, сколько времени и памяти занимает программа?

Ответ:
Воспользуйтесь соответствующей утилитой: local_testing При компиляции своих решений при этом используйте статическую линковку (если вы работаете в среде Borland C++ Builder, зайдите в Project - Options - Linker и снимите галочку "Use dynamic RTL")

Вопрос:

Как писать и отправлять задачи на Java?

Ответ:
Смотрите здесь
Вопрос:

Как писать и отправлять задачи на ассемблере?

Ответ:
Смотрите здесь
Вопрос:

Почему у меня недоступны подсказки к задачам или нет доступа к учебникам?

Ответ:
Доступ к подсказкам (например, просмотр теста, на котором решение получает "Неверный ответ") зависит от тем, к которым принадлежит задача. Например, для задач с турниров и олимпиад подсказки, как правило, выключены.
Доступ к большинству учебников доступен только студентам, имеющим учетную запись в домене кафедры АВТ ВоГТУ. Чтобы подтвердить наличие учетной записи в домене, нужно сделать следующее:
1). Войти в проверяющую систему с текущим логином и паролем, щелкнуть по ссылке - своему имени, перейти в "Редактировать профиль" и поменять логин, чтобы он совпадал с именем входа в домен.
2). Заново войти в систему, введя при этом доменный пароль. Если возникает ошибка входа, перезапустить браузер.
Если у вас ещё нет учетной записи в домене, обращайтесь к Андрианову И.А. или Ржеуцкой С.Ю.
Вопрос:

Как отправлять задачи на SQL?

Ответ:
Язык SQL не является универсальным языком, он используется только для решения задач раздела Учебные курсы / Базы данных. При отправке SQL-запросов следует придерживаться следующих правил:
1. Точка с запятой в конце предложения не ставится
2. Всем вычисляемым полям необходимо явно давать имена длиной до 30 символов, например, так:
select min(price) as minpr from km_prices

Вопрос:

Как правильно оформить условие новой задачи?

Ответ:
Условие задачи оформляется по специальному HTML-шаблону.
Нигде в шаблоне не должно присутствовать название задачи!
HTML-шаблон условия задачи выглядит так:
<!-- Общее описание условия задачи -->
<p>Абзац1</p>
<p>Абзац2</p>
<img src="image001.gif"><br><!--ссылки на картинки должны быть относительными!-->
<p>Абзац3</p>

<!-- Необязательные секции -->
<h3 class="cond_sect">$description$</h3>
<p>Описание</p>
<h3 class="cond_sect">$task$</h3>
<p>Задание</p>
<h3 class="cond_sect">$comments$</h3>
<p>Комментарии</p>
<h3 class="cond_sect">$hint$</h3>
<p>Подсказка</p>
<h3 class="cond_sect">$solution$</h3>
<p>Решение</p>

<!-- Обязательные секции -->
<h3 class="cond_sect">$input$</h3>
<p>Описание входных данных1</p>
<p>Описание входных данных2</p>

<h3 class="cond_sect">$output$</h3>
<p>Описание выходных данных1</p>
<p>Описание выходных данных2</p>

<!-- Пример входных и выходных данных -->
<h3 class="cond_sect">$sample$</h3>
<table class="tbdata" width="500">
   <tr><th width="50%">$input$</th><th width="50%">$output$</th></tr>
   <tr><td valign="top"><pre>Пример 1. Вход:
3 3 2
7 7 1
8 1 1
2 0 1 0</pre>
</td><td valign="top"><pre>Пример 1. Выход:
1 2 1 3
2 1 2 1 2 1 2 1 2 1 ...</pre>
</td></tr></table>

У всех таблиц в условии задачи указывается класс tbdata. Рисунки должны быть в формате gif с прозрачным фоном.

Вставки исходного кода (поддерживается: cpp, delphi, sql, javascript, vbscript, asm, java) оформляются следующим образом:
<table><tr><td><div class="code_box"><pre><code class="cpp">
int main(void)
{
   return 0;
}
</code></pre></div></td></tr></table>


Если вы не нашли ответа на свой вопрос, задайте его на форуме
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.015 sec.
© Copyright VSTU, AVT, Nosov D.A.