Задача D. Марфа Геннадьевна ест яйца

Автор:Г. Гренкин   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:256 Мб
Выходной файл:output.txt  

Условие

У Марфы Геннадьевны есть любимая курица, которую она назвала Марфой. В определённые дни Марфа давала по яйцу, и Марфа Геннадьевна в тот же день съедала его. Марфа Геннадьевна записывала, в какие дни Марфа давала яйцо.

Однажды Марфа Геннадьевна где-то прочитала, что рекомендуется съедать не более двух яиц в неделю. Марфа Геннадьевна заинтересовалась, нарушала ли она хоть раз это правило, то есть найдётся ли промежуток из семи подряд идущих дней, в который она съедала более двух яиц.

Напишите программу, принимающую на вход список номеров дней, в которые Марфа Геннадьевна съедала яйца, и определяющую, съедала ли она хоть раз более двух яиц в неделю.

Формат входного файла

Входной файл содержит целое число N.

Далее следуют N целых чисел ai — номера дней, в которые Марфа Геннадьевна съедала яйцо.

Формат выходного файла

Требуется вывести в выходной файл слово GOOD, если Марфа Геннадьевна съедала не более двух яиц в неделю, и слово BAD, если найдётся хотя бы один промежуток из семи подряд идущих дней, в который она съедала более двух яиц.

Ограничения

1 ≤ N ≤ 100

1 ≤ a1 < a2 < … < aN ≤ 1000

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
3
1 7 8
GOOD
2
5
1 7 9 12 17
BAD

Разбор

Нужно определить, найдётся ли промежуток из семи подряд идущих дней, в который Марфа Геннадьевна съедала по крайней мере 3 яйца. Для проверки этого условия рассмотрим тройки подряд идущих дней, в которые Марфа Геннадьевна съедала яйцо, и определим, найдётся ли промежуток из семи дней, содержащий все эти три дня.

То есть Марфа Геннадьевна съедала не более двух яиц в неделю тогда и только тогда, когда

ai+2 − ai > 6 для всех i = 1, 2, ..., N − 2.

var
  a: array[1..100] of integer;
  n: integer;
  good: boolean;
  i: integer;
begin
  assign(input, 'input.txt');
  reset(input);
  assign(output, 'output.txt');
  rewrite(output);

  read(n);
  for i := 1 to n do
    read(a[i]);

  good := true;
  for i := 1 to n-2 do
  begin
    if (a[i+2]-a[i] <= 6) then
      good := false;
  end;

  if (good) then
    write('GOOD')
  else
    write('BAD');

  close(input);
  close(output);
end.

0.121s 0.016s 13