(Время: 1 сек. Память: 16 Мб Сложность: 21%)
Студент Валера являет собой классический пример лентяя. На занятия он практически не ходит, и только в конце семестра появляется в университете и сдает ”хвосты”. Его заветная мечта: найти такой день, когда можно будет сдать сразу все долги. У него есть расписание работы преподавателей, из которого точно известно, с какого и по какой день месяца каждый преподаватель ежедневно будет доступен.
Помогите Валере написать программу, которая по расписанию будет определять, сможет ли Валера сдать все долги за один день или нет.
Входные данные
В первой строке входного файла INPUT.TXT содержится натуральное число N – количество предметов, которые нужно сдать Валере (N ≤ 100). Далее идет N строк, каждая из которых состоит из двух чисел A и B, задающих отрезок работы очередного преподавателя (1 ≤ A ≤ B ≤ 31).
Выходные данные
В выходной файл OUTPUT.TXT выведите «YES», если возможно встретить всех преподавателей за один день, или «NO», если это сделать невозможно.
Примеры
Студент Валера являет собой классический пример лентяя. На занятия он практически не ходит, и только в конце семестра появляется в университете и сдает ”хвосты”. Его заветная мечта: найти такой день, когда можно будет сдать сразу все долги. У него есть расписание работы преподавателей, из которого точно известно, с какого и по какой день месяца каждый преподаватель ежедневно будет доступен.
Помогите Валере написать программу, которая по расписанию будет определять, сможет ли Валера сдать все долги за один день или нет.
Входные данные
В первой строке входного файла INPUT.TXT содержится натуральное число N – количество предметов, которые нужно сдать Валере (N ≤ 100). Далее идет N строк, каждая из которых состоит из двух чисел A и B, задающих отрезок работы очередного преподавателя (1 ≤ A ≤ B ≤ 31).
Выходные данные
В выходной файл OUTPUT.TXT выведите «YES», если возможно встретить всех преподавателей за один день, или «NO», если это сделать невозможно.
Примеры
№
|
INPUT.TXT
|
OUTPUT.TXT
|
1
|
1
1 2 |
YES
|
2
|
2
1 2 3 4 |
NO
|
3
|
3
1 8 3 5 4 9 |
YES
|
Решение
var a,b,m,k,i,n:integer;
s:array[1..100,1..2] of integer;
f,f1:text;
fl:boolean;
begin
assign(f,'input.txt');
reset(f); assign(f1,'output.txt');
rewrite(f1);
readln(f,n);fl:=false;
for i:=1 to n do
readln(f,s[i,1],s[i,2]);
if n=1 then write(f1,'YES') else begin
a:=s[1,1];b:=s[1,2];
for i:=2 to n do
begin
k:=s[i,1];m:=s[i,2];
if ((k<a) and (m<a)) or ((k>b) and (m>b)) then fl:=true else
begin
if a<k then a:=k;
if b>m then b:=m;
end
end;
if fl then write(f1,'NO') else write(f1,'YES');
end; close(f1); close(f);
end.
Комментариев нет:
Отправить комментарий