Однажды Вася очень долго просидел на остановке, прежде чем
дождался своего автобуса. Чтобы как-то занять время, он решил записывать на
листочке государственные регистрационные номера проходящих мимо автобусов,
следующих по другому маршруту, нежели нужен был Васе. При этом производилась
запись лишь основного номера, без учета региональной принадлежности. В итоге
Васе удалось записать N таких номеров.
Основная часть государственного регистрационного номера
состоит из 6 символов: трех букв и трех цифр. Сначала идет буква, затем 3 цифры
и еще 2 буквы заканчивают запись. В качестве цифр могут использоваться любые
цифры от 0 до 9, а в качестве букв только прописные буквы, обозначения которых
присутствуют как в английском, так и в русском алфавите, т.е. только следующие
символы: A, B, C, E, H, K, M, O, P, T, X, Y. Например, «P204BT» - правильный
номер, а «X182YZ» и «ABC216» - нет.
Ваша задача заключается в проверке правильности проделанной
Васей работы. А именно, нужно определить, какие из номеров соответствуют принятому
стандарту, а какие нет.
Входные данные
Первая строка входного файла INPUT.TXT содержит единственное
натуральное число N – количество записанных Васей номеров (N ≤ 50). Далее
следует N строк с записями номеров автобусов. Длины строк от 1 до 300 и содержат
только символы с кодами ASCII от 33 до 127 (не содержат пробелов, специальных и
русских символов).
Выходные данные
В выходной файл OUTPUT.TXT выведите N строк, в i-й строке
должно содержаться «Yes», если соответствующая i-я запись номера верна и «No» в
противном случае.
Пример
№
|
INPUT.TXT
|
OUTPUT.TXT
|
5
P204BT X182YZ a216bc A216BC ABC216 |
Yes
No No Yes No |
Решение
var
s,p,k:string; d:array[1..50] of string;
n,i:integer;
f,f1:text;
begin
s:='ABCEHKMOPTXY';
p:='0123456789';
assign(f,'input.txt');
reset(f);
assign(f1,'output.txt');
rewrite(f1);
readln(f,n);
for
i:=1 to n do
readln(f,d[i]);
for
i:=1 to n do
begin
k:=d[i];
if
(pos(k[1],s)=0) or (pos(k[2],p)=0) or (pos(k[3],p)=0)or(pos(k[4],p)=0)or(pos(k[5],s)=0)or(pos(k[6],s)=0)or(length(k)<>6)
then writeln(f1,'No') else writeln(f1,'Yes');
end;
writeln();
close(f1);
close(f);
end.
Комментариев нет:
Отправить комментарий