zadach283.BAS

{* Задача283 *}

REM basic

' Некоторый интернет-магазин ежедневно принимает заказы от
' покупателей. Имеется список всех заказов, сделанных в магазине в
' 2011 году. Напишите эффективную по времени работы и
' используемой памяти программу, которая по этим данным
' определяет, в какие дни недели магазин получал наименьшее число
' заказов.
' На вход программе в первой сроке подается количество заказов N.
' В каждой из последующих N строк находится информация о датах
' заказов в следующем формате:
' <день> <месяц>
' где <день> – число от 1 до 31, <месяц> – одно из 12 возможных
' слов — «января», «февраля», «марта», «апреля», «мая», «июня»,
' «июля», «августа», «сентября», «октября», «ноября», «декабря». Все
' даты — корректные, даты различных заказов могут совпадать.


DATA "января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"
DATA "воскресение","понедельник","вторник","среда","четверг","пятница","суббота"
Dim a$(12), c$(6), d(6)
For i = 1 To 12
READ a$(i)
Next
For i = 0 To 6
READ c$(i)
Next
CLS
INPUT "vvedite n"; n
For i = 1 To n
INPUT "vvedite Text"; b$
d = ASC(LEFT$(b$, 1)) - 48
For j = 1 To 12
If Mid$(b$, 3, LEN(b$) - 2) = a$(j) Then m = j
Next
a = (14 - m)  12
y = 2011 - a
m = m + 12 * a - 2
t = (7000 + (d + y + y  4 - y  100 + y  400 + ((31 * m)  12)))
d(t Mod 7) = d(t Mod 7) + 1
Next
min = n
For i = 0 To 6
If d(i) < min Then min = d(i)
Next
For i = 0 To 6
If d(i) = min Then PRINT c$(i)
Next