Решите С++ В ПропоГраде проходит великолепный фестиваль научных знаний. Они решили пригласить участников к себе на центральную площадь. Вам было поручено сделать систему распознавания билетов у групп посетителей. Билет является подлинным, если он нечетный. Необходимо из набора удалить все билеты, не проходящие по этому критерию.
Формат входных данных
В первой строке вводится N - количество билетов
Во второй строке вводятся сами номера билетов
Формат выходных данных
Если все билеты подлинные, то вывести "ALL TICKETS ARE CORRECT"
В противном случае в первой строке вывести "WRONG", во второй количество непройденных билетов. В третьей строке вывести номера билетов, которые .
Примечания
all_of , remove_if and erase к вашим услугам :)
Напоминаем, что remove_if требует в качестве аргументов начало и конец диапазона, а также функцию, по которой он будет определять - удалить элемент или нет.
входные данные выходные данные
6
123 323 111 231 999 459
ALL TICKETS ARE CORRECT
9
123 323 24 111 122 231 982 999 459
WRONG
3
123 323 111 231 999 459
//Первый ввод - число, второй - система счисления
//Pascal ABC.NET v3.0
var
a,i,b,r,n,j,bug:integer;
s,se,slo,slof:string;
procedure preob(var a,b,n:integer; var se:string);
begin
repeat
b:=a mod n;
a:=a div n;
str(b,se);
s+=se;
until (a<=n-1);
end;
begin
readln(slo);
readln(n);
for j:=1 to length(slo) do
begin;
a:=ord(slo[j]);
preob(a,b,n,se);
str(a,se);
s+=se;
for i:=1 to length(s) div 2 do
begin;
se:=s[i];
s[i]:=s[length(s)-i+1];
s[length(s)-i+1]:=se[1];
end;
write(s,'-');
slof:=slof+s;
delete(s,1,length(s));
end;
end.
//Слово Программа она кодирует как 11001111-11110000-11101110-11100011-11110000-11100000-11101100-11101100-11100000-
1) "11110100011000000110011001100"
Запишем 32-значное двоичное число без лишних знаков. При необходимости добавляем ведущие нули
"00011110100011000000110011001100"
Разделим на 4 группы по 8 цифр и переведем их в 10ричную сс
00011110{2} = 30{10}
10001100{2} = 140{10}
00001100{2} = 12{10}
11001100{2} = 204{10}
IP = 30.140.12.204
2) "10011101110101101101110001011"
Запишем 32-значное двоичное число без лишних знаков. При необходимости добавляем ведущие нули
"00010011101110101101101110001011"
Разделим на 4 группы по 8 цифр и переведем их в 10ричную сс
00010011{2} = 19{10}
10111010{2} = 186{10}
11011011{2} = 219{10}
10001011{2} = 139{10}
IP = 19.186.219.139