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

Влад М. недавно окончил лицей и наконец-то поступил в лучший университет на свете — СГАУ! Влад — прирождённый лидер, поэтому одногруппники сразу же выбрали его своим старостой. Большая часть занятий в СГАУ проходит по подгруппам, и расписание составлено исходя из того, что каждая группа разделена на две подгруппы. Староста должен составить списки подгрупп и отнести их в деканат. Это означает, что Влад должен записать каждого студента в подгруппу #1 или в подгруппу #2. Разумеется, каждый студент должен быть записан ровно в одну подгруппу. Размеры подгрупп могут быть любыми; допустимо, что в одной из подгрупп может не быть ни одного студента. Некоторые одногруппники уже успели сдружиться, а некоторые, напротив, уже недолюбливают друг друга. Так что на Влада посыпалась куча вида «Я безумно влюблён в XX, поэтому хочу учиться с ней в одной подгруппе», «XY странно смотрит на меня, мне кажется, он сумасшедший, не хочу оказаться в одной подгруппе с ним» и т.д. Конечно, были и пожелания иного рода, например, «Я хочу учиться в подгруппе #1, так как там нет пар в 8 часов утра в понедельник». Но этих и пожеланий было очень, очень много...

Предприняв несколько попыток составить списки подгрупп, Влад осознал, что это не так-то просто сделать. Поэтому он решил написать программу, выбирающую такое разбиение на подгруппы, при котором будет удовлетворено наибольшее количество одногруппников.

«Достаточно просто перебрать все возможные разбиения на подгруппы и посчитать для каждого разбиения, сколько будет выполнено. Плёвое дело!» — рассуждал Влад. Внезапно его посетила мысль, что количество возможных разбиений может быть настолько большим, что программа не сможет проверить их все не только до конца семестра, но и до конца обучения.

Зная, сколько человек учится в группе Влада ему определить количество возможных разбиений. Если возможных разбиений больше миллиона, скажите ему, что их слишком много. Два разбиения считаются различными, если найдётся хотя бы один студент, который в этих двух разбиениях записан в разные подгруппы.

Входные данные
В первой строке входных данных записано единственное целое число n (2 ≤ n ≤ 109) — количество студентов в группе Влада, включая его самого.

Выходные данные
В первой строке выведите количество возможных разбиений на подгруппы.

Если количество возможных разбиений на подгруппы больше 106, выведите вместо количества возможных разбиений TOO HARD (в точности так, как записано).

Это Олимпиада, и я незнаю как решать эту задачу...​

👇
Ответ:
marinazajcik0
marinazajcik0
23.06.2021

правильно это надо посмотреть

4,4(7 оценок)
Открыть все ответы
Ответ:
lilibete007
lilibete007
23.06.2021
Var
a:array[1..12]of real;
i:integer;
s1,s2,s3,s4:real;
begin
  for i:=1 to 12 do
  begin
  writeln('Введите среднемесячную температуру за ',i,' месяц:');
  read(a[i]);
  if i<=3 then s1:=s1+a[i] else
  if (i>3)and(i<=6) then s2:=s2+a[i] else
  if (i>6)and(i<=9) then s3:=s3+a[i] else
  s4:=s4+a[i];
  end; 
  writeln('Средняя температуры зимних месяцев: ',s1/3);
  writeln('Средняя температуры весенних месяцев: ',s2/3);
  writeln('Средняя температуры летних месяцев: ',s3/3);
  writeln('Средняя температуры осенних месяцев: ',s4/3);
end.
4,5(62 оценок)
Ответ:
szelenkooz1uqs
szelenkooz1uqs
23.06.2021
Var a,af,al:integer;
begin
  writeln('Введите число');
  readln(a);
  if a<10 then writeln('ответ: ',a)
  else
  if a<=99 then
  begin
  af:=a div 10;
  al:=a mod 10;
  if af>al then writeln('ответ: ',al) else writeln('ответ: ',af)
  end
  else
  if a<=999 then
  begin
  af:=a div 100;
  al:=a mod 10;
  if af>al then writeln('ответ: ',al) else writeln('ответ: ',af)
  end
  else
  if a<=9999 then
  begin
  af:=a div 1000;
  al:=a mod 10;
  if af>al then writeln('ответ: ',al) else writeln('ответ: ',af)
  end
  else
  if a<=30000 then
  begin
  af:=a div 10000;
  al:=a mod 10;
  if af>al then writeln('ответ: ',al) else writeln('ответ: ',af)
  end;
end.
4,6(86 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ