Поиск по этому блогу

понедельник, 12 марта 2018 г.

Статистика

Вася не любит английский язык, но каждый раз старается получить хотя бы четверку за четверть, чтобы оставаться ударником. В текущей четверти Вася заметил следующую закономерность: по нечетным дням месяца он получал тройки, а по четным – четверки. Так же он помнит, в какие дни он получал эти оценки. Поэтому он выписал на бумажке все эти дни для того, чтобы оценить, сколько у него троек и сколько четверок. Помогите Васе это сделать, расположив четные и нечетные числа в разных строчках. Вася может рассчитывать на оценку 4, если четверок не меньше, чем троек.


Входные данные
В первой строке входного файла INPUT.TXT записано единственное число N – количество элементов целочисленного массива (1 ≤ N ≤ 100). Вторая строка содержит N чисел, представляющих заданный массив. Каждый элемент массива – натуральное число от 1 до 31. Все элементы массива разделены пробелом.

Выходные данные
В первую строку выходного файла OUTPUT.TXT нужно вывести числа, которые соответствуют дням месяцев, в которые Вася получил тройки, а во второй строке соответственно расположить числа месяца, в которые Вася получил четверки. В третьей строке нужно вывести «YES», если Вася может рассчитывать на четверку и «NO» в противном случае. В каждой строчке числа следует выводить в том же порядке, в котором они идут во входных данных. При выводе, числа отделяются пробелом.

Примеры
INPUT.TXT
OUTPUT.TXT
1
5
4 16 19 31 2
19 31
4 16 2
YES
2
8
29 4 7 12 15 17 24 1
29 7 15 17 1
4 12 24
NO

Решение
var n,m,i,p:integer;
a,b,c:array [1..100] of integer;
     f,f1:text; 
  begin
    assign(f,'input.txt'); 
    reset(f); 
     assign(f1,'output.txt'); 
     rewrite(f1); 
    readln(f,n); m:=0;p:=0;
   for i:=1 to n do
    read(f,a[i]);
   for i:=1 to n do
     begin
       if a[i] mod 2 =0 then
         begin
           m:=m+1;
           b[m]:=a[i];
         end
        else
         begin
          p:=p+1;
          c[p]:=a[i];
         end;
     end;
   if p<> 0 then
    for i:=1 to p do
     Write(f1,c[i],' ');
    writeln(f1);
   if m<> 0 then
    for i:=1 to m do
     Write(f1,b[i],' '); 
     writeln(f1);
    if m>=p then
        writeln(f1,'YES') else writeln(f1,'NO');
     close(f);
      close(f1); 
    end.
Вопросы, замечания, свои вариант решения пишите в комментариях.

Комментариев нет:

Отправить комментарий