Работы учащихся Решение сложных задач по программированию | Page 9

© Иванов Дмитрий, МБОУ «Лицей № 2», г. Нижневартовск Задача № 8 На вход программе подаются сведения о ячейках камеры хранения багажа. В первой строке – текущая дата – день (ровно две цифры, от 01 до 31), затем через точку – месяц (ровно две цифры, от 01 до 12). Во второй строке сообщается количество занятых ячеек N (не меньше 3, но не больше 1000). Каждая из следующих строк имеет формат: <номер ячейки> <дата сдачи багажа> Номер ячейки – это целое число, дата – 5 символов: день (ровно две цифры, от 01 до 31), затем через точку – месяц (ровно две цифры, от 01 до 12). Сведения отсортированы по номерам ячеек. Все даты относятся к одному календарному году. Считать, что в феврале 28 дней. Нужно вывести номера тех ячеек, в которых багаж хранится более 3 дней в хронологическом порядке сдачи багажа. Например, если исходные данные были такие: 04.06 3 1000 01.06 1001 31.05 2007 21.05 то результат должен быть следующий: 2007 1001 Решение: program bagazh; uses crt; var data,z,p:string; N,i,x,er,ch,dni,l,q,w,e:integer; a:array[1..100] of string; begin readln(data); readln(N); val(copy(data,4,2),x,er); case x of 1:dni:=31; 2:dni:=59; 3:dni:=90; 4:dni:=120; 5:dni:=151; 6:dni:=181; 7:dni:=212; 8:dni:=243; 9:dni:=273; 10:dni:=304; 11:dni:=334 else dni:=365 end; val(co py(data,1,2),x,er); dni:=dni+x; l:=1; for i:=1 to N do begin readln(z); val(copy(z,9,2),x,er); case x of 1:ch:=31; 2:ch:=59; 3:ch:=90; 4:ch:=120; 5:ch:=151; 6:ch:=181; 7:ch:=212; 8:ch:=243; 9:ch:=273; 10:ch:=304; 11:ch:=334 else ch:=365 end; val(copy(z,6,2),x,er); ch:=ch+x; str(ch,p); if ch>dni then if (ch-dni)>3 then begin a[l]:=copy(z,1,4) + p ; l:=l+1 end; if dni>ch then if (dni-ch)>3 then begin a[l]:=copy(z,1,4) + p; l:=l+1 end; end; for i:=1 to l-2 do begin er:=i; for N:=i+1 to l-1 do begin val(copy(a[N],5,length(a[N])-4),q,e); val(copy(a[er],5,length(a[er])-4),w,e); if q > w then er:=N; end; if i<>er then begin data:=a[i];a[i]:=a[er];a[er]:=data; end; end; for i:=1 to l-1 do writeln(copy(a[i],1,4)); end. май, 2015 г.