Contest.uni-smr.ac.ru :: соревнования по программированию
Русская версия || English version
Login:
Password:
Забыли пароль?
 пример поиска: Вася Пупкин
 

Для подготовки

Полезные ресурсы:


Задачи

Задача 1 (Е % 6Пр.10) (ОМ)

Задача 2 (Е %6Пр.11) (ОМ, ДМ)

Задача 3 (Е %%6.2.7) (ОМ)

Задача 4 (Е 6.2.14) (ОМ)

Задача 5 (Е 6.2.15) (ОМ)

Задача 6 (Е 6.2.15) (ОМ)

Задача 7 (Е15.5.1) (ОМ)

Задача 8 (Е 15.9.2) (ТФ)

Задача 9 (Ю %4.27) (ОМ)

Задача 10 (Ю 4.35) (ОМ)

Задача 11 (Ю 5.17) (ДМ)

Задача 12 (Ю 5.24) (ОМ)

Задача 13 (Ю 5.33) (ОМ)

Задача 14 (Ю 7.30) (ОМ)

Задача 15 (Ю 7.47) (ОМ)

Задача 16 (Ю 8.23) (ДМ, М)

Задача 17 (Ю 8.31) (ДМ)

Задача 18 (Ю 5.34) (ОМ)

Задача 19 (Ю 5.4) (ОМ, ДМ)

Задача 20 (Ю 12.2) (ТФ)

Задача 76 (Ю 8.6)

Задача 77 (Ю12.1)

Задача 78 (Ю5.23)

Задача 79

Задача 80 (У15.16)

Задача 81 (У15.6)

Задача 82 (У9.54)

Задача 83

Задача 84

Задача 85 (У9.64)

Задача 86 (У11.24)

Задача 87

Задача 88

Задача 50 **

Задача 51 **

Задача 52 **

Задача 53 **

Задача 54 *

Задача 55 *

Задача 56 **

Задача 57 **

Задача 58 *

Задача 59 **

Задача 60 **

Задача 61 **

Задача 62 **

Задача 63 **

Задача 64 ****

Задача 65 *

Задача 21*** (ТФ)

Задача 22*** (ТФ)

Задача 23**** (ТФ, М)

Задача 24**** (ТФ)

Задача 25*** (ТФ)

Задача 26*** (ТФ, ОМ)

Задача 27*** (ОМ, ОС)

Задача 28*** (ОМ, ОС)

Задача 29*** (ОМ, ОС)

Задача 30**** (ОМ)

Задача 31**** (ОC)

Задача 32*** (ОС)

Задача 33***** (ОС)

Задача 34***** (ОС)

Задача 35***** (Д)

Задача 36**** (ТФ)

Задача 37**** (ОМ)

Задача 38*** (%П 16)

Задача 39 (П 16.36)

Задача 40 (А 464)

Задача 41 (П %16.27)

Задача 42 (П 16.24)

Задача 43 (П 16.25)

Задача 44 (П 16.24)

Задача 45 (П 16.30)

Задача 46 (П 16.33)

Задача 47 (П 16.35)

Задача 48 (П 16.45)

Задача 49

Задача 66***

Задача 67**

Задача 68**

Задача 69**

Задача 70*

Задача 71*

Задача 72*

Задача 73*

Задача 74***

Задача 75**

Задача 89

Задача 90

Задача 91

О зачете по языкам программирования

Первое, что нужно сделать - зарегистрироваться в системе, иначе 
не будет доступна форма для сдачи задания.

Для регистрации нужно перейти на страницу "регистрация участника",
заполнить поля, отмеченные звездочками (логин, пароль, повторение
пароля, фио, e-mail), а также поле "учебное 
заведение", в котором указать только НОМЕР ГРУППЫ (подгруппу 
указывать не нужно). Поле "преподаватель" заполняется по желанию.
Даже если у Вас нет e-mail, поле все равно нужно заполнить 
(например, написать e@mail.net).
Совет: Вы можете использовать для регистрации тот же логин, под которым
Вы работаете в локальной сети СамГУ. Пароль очень рекомендуется 
использовать другой.

После регистрации нужно войти в систему, используя формы ввода 
в левом верхнем углу страницы, и перейти на страницу "для подготовки"
На этой странице размещены зачетные задачи. Номер Вашей задачи
Вам сообщит преподаватель. 

Внизу на странице каждой задачи Вы найдете ссылку "Сдать задачу", которая
переводит Вас на страницу отправки исходного текста задачи.

Вы можете решать задачу на любом из языков, поддерживаемых системой.
Выбрать язык Вы можете с помощью раскрывающегося списка "Компилятор".
Рекомендуемый язык - Delphi 7.0 (использование другого языка, разумеется,
повлечет за собой дополнительные вопросы).
Система поддерживает компиляцию только консольных приложений, и это 
надо учитывать при создании приложений в Delphi, выбирая соответствующий
шаблон. 
Проще всего отправить Ваше решение задачи на проверку можно, просто 
скопировав его в соответствующую форму ввода на странице "Сдать задачу".

Когда Вы нажмете кнопку "Отправить на проверку", то через некоторое время 
получите сообщение о результатах проверки. Сообщения могут быть различными.
Например time limit exceeded, скорее всего, свидетельствует о том, что 
в Вашей программе используется бесконечный цикл, wrong answer on test 2 -
то, что программа не проходит второй тест (заметим, что программа может не 
проходить и другие тесты, но сообщается номер первого из них).
При правильном решении Вы получите сообщение Accepted.

Посмотреть свое решение Вы можете, перейдя на страницу "Мои решения" и нажав
на идентификатор решения. Если нажмете на название задачи, то перейдете 
на страницу с текстом задачи.

Приведем примеры решения задачи A+B, в которой требуется сложить два целых числа.

Следующий пример написан на Delphi, заголовок программы указывать не обязательно.

var
fin, fout: TextFile;  //переменные для работы с текстовыми файлами - обязательно!
a, b, c: Longint;  // исходные данные и результат

begin
{ CONSOLE}

AssignFile(fin, 'input.txt'); // эта и следующая строка - обязательны: нужно
Reset(fin); // связать файловую переменную с текстовым файлом и открыть его

read(fin, a, b); // не во всех задачах такие простые входные данные, 
                 // возможно, потребуется более сложный ввод 

c:=a+b; // собственно решение задачи

CloseFile(fin); // завершение работы с входным файлом - обязательно!

AssignFile(fout, 'output.txt'); // эта и следующая строка - обязательны:
Rewrite(fout); // они обеспечивают вывод

write(fout, c); // вывод решения

CloseFile(fout); // завершение работы с выходным файлом - обязательно!

end.

Обратите внимание на чтение из текстового файла. Нужно внимательно изучить,
в какой последовательности входные данные расположены во входном файле 
(не исключено, что на нескольких строках), и именно так их извлекать из него.
При формировании выходного файла нужно учитывать, что writeln генерирует 
дополнительную пустую строку в файле, а сравнение файлов с ответами в системе 
(по крайней мере, пока) производится побайтово. Файл с лишней пустой строкой
(и даже пробелом) система не сочтет правильным.

А теперь приведем пример решения этой же задачи на Java (заметим, что способы 
прочитать из файла данные и вывести результат в файл не единственно возможные).
Если Вам требуется прочитать из файла вещественные числа, в которых дробная часть
отделена от целой десятичной точкой (а не запятой, как правило, принятой в региональных 
установках русифицированных операционных систем), то после создания объекта 
класса Scanner следует написать 
scr.useLocale(Locale.US);
что приведет к правильному распознаванию вещественных чисел.

package aplusb;

import java.util.*;
import java.io.*;

class A_plus_B {
    
    int a;
    int b;
    String Solution;
    
    void readData() throws IOException {
        FileReader fin = new FileReader("input.txt");
        Scanner scr = new Scanner(fin);
        
        a = scr.nextInt();
        b = scr.nextInt();
        
        fin.close();
    }
    
   void solution(){
       int sol = a + b;
       Solution = String.valueOf(sol);
   } 
   
   void writeData() throws IOException {
       
       FileWriter fout = new FileWriter("output.txt");
       fout.write(Solution);
       fout.close();
   }
}

public class Main {

    /**
     * @param args the command line arguments
     * @throws java.io.IOException 
     */
    public static void main(String[] args) throws IOException {
        A_plus_B ab = new A_plus_B();
        ab.readData();
        ab.solution();
        ab.writeData();
    }

}


И - в завершении инструкции. Поскольку задания учебные, то следует 
использовать именно те средства и типы языка, которые указаны в тексте 
задачи, а не любые подходящие. Если, например, в задаче написано, что необходимо
объединить два линейных однонаправленных списка, то нужно работать именно с 
линейными однонаправленными списками, а не с массивами, например.
По сданной задаче, как правило, Вам будут заданы вопросы.

Успехов :)