Одним из главных принципов уникальной «системы Физтеха», заложенной в основу образования в МФТИ, является тщательный отбор одаренных и склонных к творческой работе представителей молодежи. Абитуриентами Физтеха становятся самые талантливые и высокообразованные выпускники школ всей России и десятков стран мира.

Студенческая жизнь в МФТИ насыщенна и разнообразна. Студенты активно совмещают учебную деятельность с занятиями спортом, участием в культурно-массовых мероприятиях, а также их организации. Администрация института всячески поддерживает инициативу и заботится о благополучии студентов. Так, ведется непрерывная работа по расширению студенческого городка и улучшению быта студентов.

Адрес e-mail:

Секция А. Алгоритмические задачи

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

Для написания программ можно воспользоваться следующими языками программирования: Pascal, C, C++, Java. Программа должна компилироваться без подключения дополнительных библиотек в одной из следующих сред:

Turbo Pascal (DOS, Windows): Turbo Pascal v7.0 С/С++ (DOS, Windows): gcc v 3.4.4 (codeblocks-1.0rc2_mingw.exe); C/C++ (Linux): gcc v 3.4.x; Java: sun jdk-5 (1.5).

Примечание:

Можно использовать только стандартные библиотеки. Описание стандартных библиотек для С\С++ можно найти на http://cppreference.com/.

Участникам необходимо прислать:

исходный код программ-решений; пояснения к программам (описание алгоритмов) вместе с доказательством (аргументированными рассуждениями в произвольной форме) корректности применения использованных алгоритмов для решения конкретных задач; по 5 тестов для проверки работоспособности каждой программы.

Жюри будет проверять программы, используя тесты Оргкомитета, а также тесты, присланные участниками.

На выполнения каждого теста отводится не более 5 секунд (частота CPU — 1500МГц), при этом будет учитываться скорость выполнения программы.
В целях облегчения проверки просьба расположить задачи этой секции, согласно следующей структуре директорий:

/<FAMILIA>/ AUTHOR.TXT — личные данные участника, /<FAMILIA>/SA/<AN>/<LANG>/ PROG.<LANG> — исходный текст программы (он должен быть размещен в 1 файле!), /<FAMILIA>/SA/<AN>/DOCS/INFO.TXT — описание программы, /<FAMILIA>/SA/<AN>/<LANG>/TESTS/IN<I>.TXT.

Здесь <FAMILIA> — фамилия участника, записанная латинскими буквами. <SA> - секция A. <AN> - номер задачи (A3 — например), <LANG> — язык программирования (PAS, C, CPP, JAVA), <I> — номер теста (соответственно 0..4).

Программа должна использовать для ввода всех данных файл INPUT.TXT; для вывода — OUTPUT.TXTв директории работы программы. Копирование тестов в нее будет производиться автоматически системой проверки. Для ввода-вывода использовать следующий код:

 










•Pascal:
     var fin:text;
     fout:text;
     begin
     Assign(fin,”INPUT.TXT”);
     Reset(fin);
     Assign(fout,”OUTPUT.TXT”);
     Rewrite(fout);
     { //ввод-вывод 
     Пример:
     read(fin,num);
     write(fout,num);
     }
     Close(fin); Close(fout);
     end.

•C: 
     FILE * fin = fopen(“INPUT.TXT”,”r”); 
     FILE * fout = fopen(“OUTPUT.TXT”,”w”); 
     // ввод-вывод 
     Пример: 
     int iVariable; float fVariable; 
     fscanf(fin, “%d %f”, &iVariable, &fVariable); 
     fprintf(fout,”%2d %4.2f”, iVariable, fVariable); 
     fclose(fin); fclose(fout);

•C++: 
     #include <fstream > 
     std::ifstream is(“INPUT.TXT”); 
     std::ofstream os(“OUTPUT.TXT”); 
     //ввод-вывод 
     Пример: 
     int iVariable; float fVariable; 
     is>>iVariable>>fVariable; os<<iVariable<<fVariable<<std::endl; 
     is.close(); 
     os.close();

•Java: 
     try{
     BufferedReader reader = new BufferedReader(new FileReader("INPUT.TXT"));
     BufferedWriter writer = new BufferedWriter(new FileWriter("OUTPUT.TXT"));
     int a = Integer.parseInt(reader.readLine());
     //ввод-вывод 
     Пример:
     String s = reader.readLine();
     writer.write(s + " " + a + "\n");
     reader.close();
     writer.close();
     } catch (IOException e) {
     throw new RuntimeException(e);
     }


Компиляция и запуск (Java) программ будет проводиться при помощи следующих команд:

     •Pascal: bpc.exe prog.pas 
     •C: gcc -o2 -std=c99 -o prog.exe prog.c
     •C++: gcc -lstdc++ -o2 -std=c++98 -o prog.exe prog.c
     •Java: javac Prog.java 
     java Prog

Каждая задача оценивается в 30 баллов: аргументация алгоритма решения – 10; за тестирование: 10 – за тесты, присланные участниками (оценивается как результат выполнения программой данного теста, так и грамотность составления тестов) и 10 баллов за прохождения тестов Оргкомитета.

 

Если вы заметили в тексте ошибку, выделите её и нажмите Ctrl+Enter.

© 2001-2016 Московский физико-технический институт
(государственный университет)

Техподдержка сайта

МФТИ в социальных сетях

soc-vk soc-fb soc-tw soc-li soc-li
Яндекс.Метрика