М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
gfjew56df
gfjew56df
12.11.2020 13:18 •  Информатика

Недавно алексей устроился на работу в крупную it-компанию. ему предложили поработать над
групповым проектом. до этого у него уже было много успешных проектов, но в этот раз всё шло
не по плану.
алексей долго пытался найти причину всех неудач. в итоге он пришел к выводу, что его группа
. он считает, что i-й человек в компании характеризуется числом ai
. тогда в его
понимании, группа , если для любого целого m > 1 и любой пары разных людей
(i, j) в группе верно, что остатки от деления чисел ai и aj на m различаются.
алексей обратился со своими соображениями к руководству. они были бы рады согласиться на
реформы, но для начала хотели бы оценить все риски. алексею убедить руководство, для
этого требуется найти минимальное количество групп, на которое можно разбить
всех работников компании.
формат входных данных
в первой строке задано одно целое число n (2 6 n 6 200 000) — количество работников в компании.
во второй строке заданы n целых чисел a1, a2, . . , an (1 6 ai 6 109
) — числа, характеризующие
работников.
формат выходных данных
выведите одно число — минимальное количество групп, на которое можно
разбить всех работников компании.
примеры
стандартный ввод стандартный вывод
4
1 2 3 1
3
5
6 1 2 5 3
3
6
1 1 2 2 1 1
4
замечание
в первом примере работников можно разбить на группы первый и третий работник не могут быть в одной группе
так как остатки от деления a1 и a3 на 2 . первый и четвёртый работник не могут быть
в одной группе так как остатки от деления a1 и a4 на 7 . третий и четвёртый работник
не могут быть в одной группе так как остатки от деления a3 и a4 на 2 . таким образом,
ответ на данный тест равен 3

👇
Открыть все ответы
Ответ:
dashkaborisova
dashkaborisova
12.11.2020
Const m=9; n=10;
var 
a:array[1..m,1..n] of integer;
i,j,m1,n1:integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to m do
 begin
 for j:=1 to n do
  begin
   a[i,j]:=random(13)-5;
   write(a[i,j]:4);
  end;
  writeln;
 end;
writeln('Элемент, расположенный в правом верхнем углу массива: ',a[1,n]);
writeln('Элемент, расположенный в левом нижнем углу массива: ',a[m,1]);
writeln('Какой элемент второй строки нужно вывести?');
readln(n1);
writeln('Элемент, расположенный во второй строке в ',n1,' столбце: ',a[2,n1]);
writeln('Какой элемент третьего столбца нужно вывести?');
readln(m1);
writeln('Элемент, расположенный в третьем столбце в(о) ',m1,' строке: ',a[m1,3]);
writeln('Какой элемент массива нужно вывести?');
readln(m1,n1);
writeln('Элемент, расположенный в(о) ',m1,' строке в(о) ',n1,' столбце: ',a[m1,n1]);
end.

Пример:
Исходный массив:
   7  -5   7   7   3   3   4   6  -5   1
   7  -3  -1  -5  -1  -1   2   4  -2   6
   0   3   4  -2  -3  -1  -2   7   3  -2
   7   3  -2   6  -2   4  -1   1   0   3
   2   4  -1   6  -2   2   5   4   4  -1
  -1  -4   5   2   5  -1  -5   5  -5   0
   4   2  -4   2  -3   1  -1   5   3   4
  -2   5  -4  -1   5   5   3   3  -2   1
   5   2  -3   3   5   4   3   3   4   5
Элемент, расположенный в правом верхнем углу массива: 1
Элемент, расположенный в левом нижнем углу массива: 5
Какой элемент второй строки нужно вывести?
Элемент, расположенный во второй строке в 4 столбце: -5
Какой элемент третьего столбца нужно вывести?
Элемент, расположенный в третьем столбце в(о) 5 строке: -1
Какой элемент массива нужно вывести?
Элемент, расположенный в(о) 6 строке в(о) 2 столбце: -4
4,6(17 оценок)
Ответ:
seee1902
seee1902
12.11.2020
#include <stdio.h>
#include <stdlib.h>

int main() 
{
   int n=10, h;
   int a[n]; 

   srand (time(NULL));
   for (int i=0; i<n; i++)
        {
        a[i] = rand() % 21 - 10;
        printf ("%4d ", a[i]);
        }
    printf("\n");
    for (int i=0; i<n/4; i++){
    h = a[i]; a[i] = a[n/2-i-1]; a[n/2-i-1] = h;
    }
    for (int i=n/2; i<3*n/4; i++){
    h = a[i]; a[i] = a[3*n/2-i-1]; a[3*n/2-i-1] = h;
    }
    for (int i=0; i<n; i++) printf ("%4d ", a[i]);
    printf("\n");
    return 0;
}

Пример:
-4 -10 -2 -8 3 -2 1 -5 -6 -5
3 -8 -2 -10 -4 -5 -6 -5 1 -2
4,7(91 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ