Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: Уважаемый админ.
Прошу повнимательнее формулировать условие задачи, т.к. на сегодняшней олимпиаде в задаче С было сказано, что макс. значение N-1000000, в то время как в одиночный массив может хранить 16198 переменных... Мною было написано решение, однако прочитав условие, я увидел данное ограничение для N, и начал задачу перерешивать другим способом...(я думаю все привыкли, что практически во всех тестах есть макс. значение) Данное решение ни к чему не привело. Тогда я решил все же отправить первое решение, но так как я считал его неправильным, то удалил. Пришлось решать заново. В общем потратил на это в районе 30-40 минут... я думаю понятно, сколько они в плане места значат! =) Данная олимпиада была пробная, так что место в принципе не важно, но вот на офиц. олимпиадах, хотелось бы, чтобы подобных "артефактов" не было. С уважением...
П.С. Огромная благодарность за сайт! =)

1
  1  Закирзянов Илья Тимурович, 22 сентября 2008 г. 5:34:56
      Не понял... Число тестов, пройденных задачей? То есть если хотя бы один тест задача проходит, то она принимается, а потом уже смотрится кол-во прошедших тестов? Не как в архиве задач? Мм... Я думал, что здесь такая же система, пока задача не проходит все тесты - она не принимается...
     Задача в личной олимпиаде принимается и получает статус Accepted тогда и только тогда, когда проходит 1й тест. И вообще, для кого написано "положение" в разделе "олимпиады", там все это русским языком прописано. Полезно иногда ознакомится с правилами мероприятия, в котором участвуешь.
  2  Закирзянов Илья Тимурович, 21 сентября 2008 г. 19:03:19
      И про эту дерективу : {$e+}. А разьве в паскале в {фигурных скобках} не коментарии указываются?
     Да, но когда после скобки идет знак $, то это означает, что далее следует директива компилятора. Нажмите в ТП 7.0 Ctrl+O дважды и увидите их все в верхней строке.
  3  Закирзянов Илья Тимурович, 21 сентября 2008 г. 19:01:55
      Спасибо за информацию. =) И у меня еще один вопрос: я на этом сайте недавно, и первый раз участвовал в олимпиаде. Мне интересно, каким образом и по каким критериям выставляются балы за задачи в личных олимпиадах.
     В личных олимпиадах баллы за задачи - это сумма баллов за каждую задачу, а за каждую задачу балл определяется из формулы: Макс_балл*Число_прошедших_тестов/Всего_тестов.
  4  Закирзянов Илья Тимурович, 21 сентября 2008 г. 12:57:59
      Мм.. если я ставлю тип Extended, то появляется ошибка №116. Must be in 8087 mode to compile this. Я в настройках покопался, нашел данную настройку, которая включает этот мод... Я нашел, что при этом открывается возможность использовать кроме Real другие вещественные типы... То есть, я могу эту галочку поставить, чтоб использовать Extended, Single и другие?
А про задачу 5*5: я ее решил с типом Longint. =)
     Да, можно просто директиву {$e+} указать в начале программы. Ну с лонгинтом - это решение и подразумевается, так сказать, решить по-честному, исходя из принципов возведения в квадрат чисел, оканчивающихся на 5.
  5  Закирзянов Илья Тимурович, 20 сентября 2008 г. 20:11:26
      Вот поэтому и хочу переходить на Си++. =) Еще про типы: если я в своей программе укажу тип int64, и сдам задачу, то она примется вашим сервером? Как я понимаю да, потому что задачу "5*5=25", как написано в обсуждении, можно решить с помощью данного типа. Я прав?
     Вы правы. Так же можно использовать extended и программа будет выглядеть тоже совсем просто: read(x); write(x*x:0:0); Но преимущество в том, что это будет работать в обычном паскале ТР 7.0
  6  Закирзянов Илья Тимурович, 20 сентября 2008 г. 17:11:32
      Не дочитал сначала про Делфи и фрипаскаль. Я думаю, щас олимпиады кончатся и буду на С++ переходить... Он намного более актуален в наше время. =) Но спасибо за совет.
     Я бы сказал, что С++ слишком актуален в последнее время в олимпиадном программировании :) Особенно, если учитывать, что со следующего года на паскале на олимпиадах высокого уровня вообще будет нельзя писать.
  7  Закирзянов Илья Тимурович, 20 сентября 2008 г. 16:54:57
      Все понятно) Еще раз прошу прощения и спасибо. Кстати, насчет типов еще хотел спросить: тип int64 не поддерживается в ТП 7.0?
     тип int64 конечно же не поддерживается ТП 7.0, но иногда его может заменить extended, несмотря на свою вещественность у него неплохой размер и с ним возможно работать, только при выводе, чтобы он был похож на целый надо писать что-то вроде write(x:0:0)
  8  Закирзянов Илья Тимурович, 20 сентября 2008 г. 16:25:08
      Я пишу в ТП 7.0 с вашего сайта =) Спасибо за информацию... ТОк все равно не понятно... я промежут 16000 поставил, а прога прошла... Надо покапаться в настройках) Тогда прошу прощения, буду знать )
     Ну тогда все ясно с вами :) В ТП 7.0 обычные массивы не могут иметь общий размер более 64 Кб, а у у вас наверное массив типа longint, поэтому элемент = 4 байта, в связи с чем элементов не может быть более чем 16438. У вас получалось еще меньше, т.к. были и другие переменные. Но если вы пишете на ТП 7.0, но перед сдачей программы изменяете описание массива на 1000000 элементов, то она может пройти. Советую переходить на делфи, или фрипаскаль (последний очень удобным вам покажется, т.к. выглядит внешне как паскаль, а имеет те же возможности как Делфи).
  9  Закирзянов Илья Тимурович, 20 сентября 2008 г. 15:46:25
      Возможно. А цифру я эту взял вот откуда: при объявлении массива максимальную длину, которую я смог задать: a:array [1..16198]... при большей длине - выдавалась ошибка... Возможно я чего-то тогда недопонимаю, в таком случае прошу, если не трудно, мне объяснить. =)
     Ну многое что может быть. Пишете если в Delphi, то может быть в настройках установлено ограничение на использование памяти (что на самом деле мало вероятно), а может вы не в Delphi вовсе пишите. Но поверьте, массивы из миллиона элементов - обычное дело.
  10  Беляев Сергей Николаевич, 20 сентября 2008 г. 15:20:53
      Проблему не понял. Задача сформулирована абсолютно верно, и есть тест, где N=1000000. Про число 16198 не понял, откуда вы взяли его? Массив может иметь и 15 000 000 элементов к вашему сведению.
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru