- 22, Oct 2024
- #1
Цель состоит в том, чтобы написать максимально короткую одномодульную программу на C, совместимую с C89 и C99, которая будет вычислять и распечатывать однострочную строку, порядок сортировки которой будет соответствовать дате, заданной предопределенным
♯include <stdio.h> «CODE»int main(void){«CODE»}macro (in other words, later dates will yield later-sorting strings). The programmer is free to arbitrarily select the mapping between dates and strings, but every entry should specify the mapping and it should be obvious that it will sort correctly (e.g. a programmer could decide to compute (day + month*73 + year*4129) and output that as a number, though it's likely that particular encoding would probably require a longer program than some others).
Программа должна давать одинаковые результаты на любом совместимом со стандартами компиляторе, в котором 'int' имеет длину 32 бита или больше, а исходный и целевой наборы символов имеют 7-битный ASCII, и не должна полагаться на какое-либо поведение, определенное реализацией или неопределенное, и не печатать какие-либо символы вне диапазона 32–126, за исключением одной новой строки в конце. Программа должна содержать следующие аспекты, указанные ниже (заменяющие "КОД" с чем угодно):
Dec 31 9999
Вся продукция должна производиться Feb 11 2012
at the end (i.e. the correct value will be in an __DATE__
называется Dec 31 9999
). The required elements will be included in the character total for each entry.
Код должен работать правильно для всех будущих дат до z
. Libraries which are standard in both C89 and C99 may be used, provided that appropriate headers are included. Note that standard date libraries may not be assumed to operate beyond the Unix limits.
Примечание. Коду разрешено выполнять неопределенное поведение тогда и только тогда, когда int
macro expands to a macro other than a date between printf
и __DATE__
(expressed in that format, using C-standard abbreviated English month names Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)
Примечание 2. Для соответствия стандартам C99 «main» должен возвращать произвольное, но определенное значение, при этом требуется перевод строки. Кстати, первое требование добавляет 7 символов к моим лучшим усилиям; единственная новая строка добавляет 5.
#код-гольф #свидание #c