Подразделы

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

Дата и время

27/04/2024 05:08:55

Авторизация

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

printРазбор задачи B. Икебана

Тема: редукция (проверка значений массива на ограничения), на смекалку
Сложность: простая

1. Не имеет смысла стричь какой-либо росток бамбука несколько раз. Высота ростка будет определяться последней стрижкой.
2. Стричь бамбук нужно в последний день соревнований, подрезая все ростки бамбука до высоты `h`. Т.е. требуется не более одной стрижки.
3. Высота `i`-го ростка бамбука в последний день соревнований равна `a_i+b_i*(m-1)`. Эта величина может достигать `10^18`, поэтому для вычислений в языке Pascal нужно использовать тип int64, real, double, extended (long long, double, long double в C/C++).
4. Если какой-то росток в последний день соревнований не дорастет до высоты `h`, то выводим `-1`. Если все ростки будут иметь высоту `h`, то выводим 0, иначе выводим 1.
var i,m,n,h,ans:integer;
  ai,bi:real;
begin
  readln(n,m,h);
  ans:=0;
  for i:=1 to n do
  begin
    readln(ai,bi);
    ai:=ai+bi*(m-1);
    if ai<h then
    begin
      ans:=-1;
      break;
    end;
    if ai>h then
      ans:=1;
  end;
  writeln(ans);
end.
loading