М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
bauka077
bauka077
13.04.2021 19:34 •  Информатика

Недавно археологи обнаружили странную находку, предположительно летопись
некоторых событий, которая может раскрыть берляндским историкам причину исчезновения
столь могущественного общества — стопку из дюжины блестящих тонких дисков из
неизвестного материала, нанизанных на алмазный стержень. На верхнем диске ученые
обнаружили три числа, каждое из которых состоит из двух цифр. Ученые предположили, что на
диске записана дата конца великой цивилизации.
После анализа дисков было установлено, что они использовались в XXI веке по
летоисчислению, использовавшемуся древней цивилизацией — так называемому
«григорианскому» календарю — год продолжительностью 365 дней, разделялся по нему на
двенадцать месяцев. Второй месяц в году имел продолжительность двадцать восемь дней,
первый, третий, пятый, седьмой, восьмой, десятый и двенадцатый — тридцать один день,
остальные — тридцать дней. В особые года, номер которых делился на четыре и не делился на
сто, либо делился на четыреста, второй месяц длился двадцать девять дней. Веком номер i
назывался период с 100 × (i − 1) + 1 года по 100 × i.
Так как достоверно не известно, в каком порядке представители древней цивилизации
записывали даты, вам, как главному специалисту по григорианскому календарю, поручили
провести исследование — установить, каким датам в XXI веке могла соответствовать надпись,
в предположении, что одно из чисел соответствует дню в месяце (дни в каждом месяце
нумеровались с единицы), еще одно из чисел — номеру месяца (месяцы также нумеровались с
единицы), и еще одно число — последним двум цифрам года в XXI веке григорианского
календаря.
По заданной надписи на диске выясните, каким датам в XXI веке она могла
соответствовать.
Формат входного файла
Во входном файле в формате aa/bb/cc записаны числа с диска.
Формат выходного файла
В выходной файл в произвольном порядке выведите все корректные даты dd/mm/yy в
XXI веке, где dd соответствует номеру дня, mm – номеру месяца, yy — номеру года, причем
числа, соответствующие dd, mm и yy являются перестановками чисел с диска.
В случае, если никакая перестановка исходных чисел не является корректной датой XX

👇
Открыть все ответы
Ответ:
olegiwanow
olegiwanow
13.04.2021
Прочитав текст, можно легко понять, что проще всего "зацепиться" за его фрагмент "я учился на 12 и 11". Кроме того, нигде не встречается цифр, больших двойки, следовательно основание системы р может быть 3 и более.
Допустим, что система оценок была пятибалльной.
Пусть p=3, тогда 12(3)=3+2=5, 11(3)=4 и это похоже на реальные числа.
При р=4 получаем 12(4)=6 и это уже нарушает наше допущение о пятибалльной системе.
Но посмотрим, что даст предположение р=3.
12(3) лет - это 5.
122 года - это 3²+2×3+2 = 17 лет - нормальный возраст для поступления в вуз.
21(3) год - это 3×2+1 = 7 лет - вполне допустимый срок для начала преподавания.
220(3) лет = 2×3²+2×3 = 24 года - путешествие было не коротким...
10011(3) лет = 3⁴+3+1 = 85 лет - вполне почтенный возраст.
4,5(93 оценок)
Ответ:
00099000
00099000
13.04.2021
1. Задача решается с стека (алгоритм Дейкстры для обработки обратной польской записи). Предполагается, что во вводимой строке содержится корректное выражение, удовлетворяющее условиям задания.

// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var w:=ReadlnString.ToWords;
  var St:=new Stack <integer>;
  var r:=0;
  foreach var t in w do
    if t[1].IsDigit then St.Push(t.ToInteger)
    else begin
      var a:=St.Pop;
      var b:=St.Pop;
      case t[1] of
      '+':St.Push(a+b);
      '-':St.Push(b-a);
      '*':St.Push(a*b)
      end;
    end;
  Writeln(St.Pop) 
end.

Контрольный пример
8 9 + 1 7 - *
-102

2. Задача крайне просто решается при регулярного выражения с рекурсией. Фактически вводить количество шаров не нужно, поэтому после ввода оно отбрасывается.

// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln(ReadlnString.ToWords.Skip(1).JoinIntoString('').
      MatchValue('(.)\1{2,}').Length);
end.

Контрольный пример
5 2 3 3 3 1
3
4,4(14 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ