Разбор задачи B. Икебана
Тема: редукция (проверка значений массива на ограничения), на смекалку
Сложность: простая
1. Не имеет смысла стричь какой-либо росток бамбука несколько раз. Высота ростка будет определяться последней стрижкой.
2. Стричь бамбук нужно в последний день соревнований, подрезая все ростки бамбука до высоты h. Т.е. требуется не более одной стрижки.
3. Высота i-го ростка бамбука в последний день соревнований равна ai+bi⋅(m-1). Эта величина может достигать 1018, поэтому для вычислений в языке 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.