Только ! в базу данных заносятся сведения о сотрудниках предприятия. таблица 1 содержит информацию об id сотрудника (уникальный в пределах таблицы идентификатор), его фио и названии отдела, к которому сотрудник принадлежит. таблица 2 содержит информацию о подчинении сотрудников. если сотрудник «1» находится в подчинении у сотрудника «2», а сотрудник «2» находится в подчинении у сотрудника «3», то образуется цепочка подчинений длиной 2 («3» → «2» → «1»). цепочка подчинений не может быть зациклена. для всех сотрудников из таблицы 2, есть соответствующие записи в таблице 1. также известно, что на предприятии не работают полные тезки, каждый сотрудник работает только в одном отделе, у каждого сотрудника может быть только один прямой подчиненный и только один прямой руководитель, каждый сотрудник должен фигурировать хотя бы в одной цепочке подчинений. на некотором этапе заполнения в таблице 1 было 14 записей. таблица 2 содержала некоторое ненулевое число записей, причем самая длинная цепочка подчинений имела длину 4. базу данных дополнили новыми сотрудниками, далее дополнили новыми связями подчинений, после чего в таблице 2 добавились 6 новых записей. известно, что в таблицу 1 было добавлено 4 новых сотрудника. также известно, что на каждом этапе заполнения таблица 2 не содержит дублирующих записей и описывает хотя бы две цепочки, причем по ходу заполнения некоторые цепочки могут объединяться в одну. при заполнении таблицы 2 можно использовать id любых сотрудников, существующих в таблице 1. среди всех возможных вариантов заполнения таблиц выберите вариант, содержащий минимальную по длине цепочку подчинений, описанную в таблице 2 и вариант, содержащий максимальную по длине цепочку подчинений, описанную в таблице 2. в ответе укажите через пробел два числа: длину минимальной и максимальной цепочки. примечание: минимальная и максимальная цепочка необязательно содержатся в разных вариантах заполнения таблиц, а могут встретиться в одном и том же варианте.
#include <stdio.h>
#include <windows.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int const n=3;
int mas[n][n];
int sum1, sum2;
bool magik;
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
{
printf("mas[%d][%d] = ", i+1, j+1);
scanf("%d",&mas[ i ][ j ]);
}
printf("\nВведенная матрица:\n");
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
{
printf("%d ",mas[ i ][ j ]);
}
printf("\n");
}
sum1=0;
sum2=0;
for (int i = 0; i<n; i++)
{
sum1 += mas[ i ][ i ];
sum2 += mas[ i ][ n-1-i ];
}
printf("Сумма главной диагонали = %d\n", sum1);
printf("Сумма побочной диагонали = %d\n", sum2);
magik = true;
for (int i=0; i<n; i++)
{
if (sum1==sum2)
{
sum2=0;
for (int j=0; j<n; j++)
{
sum2 += mas[ i ][ j ];
}
} else { magik=false; break; }
}
if (magik==true)
{
for (int i=0; i<n; i++)
{
if (sum1==sum2)
{
sum2=0;
for (int j=0; j<n; j++)
{
sum2 += mas[ j ][ i ];
}
}
else { magik=false; break; }
}
}
if (magik==true)
printf("\nМатрица является магическим квадратом\n");
else
printf("\nМатрица не является магическим квадратом\n");
system("pause");
return 0;
}
Все слова/анаграммы, которые можно составить из слова "сканер"
Из "сканер" можно составить 58 слов из 2,3,4,5 букв.
Слова из 2 букв, составленные из комбинации "сканер" (12 слов):
ан ар ас ер ка кн кр на не нс ре се
Слова из 3 букв, составленные из комбинации "сканер" (22 слова):
акр аре арк аск ера кар кеа кен кер кнр нар нас нес рак рен рнк сак сан сен сер сна сне
Слова из 4 букв, составленные из комбинации "сканер" (13 слов):
акне енка каре керн крае кран крен раек река саек саке сена сера
Слова из 5 букв, составленные из комбинации "сканер" (11 слов):
аксен анкер аскер кенар нарек насек нерка серка серна скарн скена