Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Подразделы

Другие разделы

Дата и время

12/04/2025 13:45:39

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printРазбор задачи F. Лгуны и правдолюбы

Тема: задача на идею, логику
Сложность: ниже среднего

Пусть кто-то из героев назвал число k. Если этот герой является правдолюбом, то k героев (лгуны) должны назвать число, не совпадающее с k, а остальные n-k героев должны также сказать число k. Поэтому нужно подсчитать сколько раз названо каждое число k (для всех k от 0 до n). Если оно названо ровно n-k раз, то это один из вариантов количества лгунов в компании.
var sum:array[0..100] of integer;
    n,k,kv:integer;
begin
  read(n);
  { Считаем количество героев, сказавших некоторое число }
  for i:=1 to n do 
  begin
    read(k);
    inc(sum[k]);
  end;
  { Считаем количество вариантов }
  kv:=0; 
  for k:=0 to n do
    if sum[k]=n-k then
      inc(kv);
  { Выводим варианты }
  writeln(kv);
  if kv>0 then
  begin
    for k:=0 to n do
      if sum[k]=n-k then
        write(' ',k);
    writeln;
  end;
end.
loading