https://pastein.ru/t/Ty
скопируйте уникальную ссылку для отправки
using System;
using System.Linq;
namespace DiscraKursach
{
class Program
{
static int n, m;//n - кол-во монет, m - кол-во взвешиваний
static int[] moneti;
static void zamena(int[] except)
{
}
static void Main(string[] args)
{
string[] nums_strings = Console.ReadLine().Split();
n = int.Parse(nums_strings[0]);
m = int.Parse(nums_strings[1]);
int suspect =0;//номер подозрительной монеты
int unclear =0;//номер непонятной монеты
int[] nomera;//массив для хранения номеров монет в каждом взвешивании
moneti = new int[n+1]; //массив для хранения инфы про каждую монету 0 - неизвестно, 1 - подозрительная монета, 2 - настоящая
int pi;//переменная для хранения количетсва монет в каждой группе при каждом взвешивании
string znac;//результат взвешивания =<>
bool s;//
for (int i = 0; i < m; i++)
{
nums_strings = Console.ReadLine().Split();
pi = Convert.ToInt32(nums_strings[0]);//считываем кол-во монет в каждой группе
nomera = new int[pi*2];//массив, где будут храниться номера монет
for (int j = 0; j <2* pi; j++)//записываем номера монет
{
nomera[j] = Convert.ToInt32(nums_strings[j+1]);
}
znac = Console.ReadLine();
if (znac == "=")//если обе группы монет весят одинаково, то все монеты настоящие
{
for (int j = 0; j < pi * 2; j++)
{
moneti[nomera[j]] = 2;
}
}
else//если весят по-разному
{
for (int j = 1; j < n+1; j++) //проверяем каждую монету
{
s = false;
if (moneti[j] == 2)//если мы уже знаем, что монета настоящая, то ничего с ней не делаем
{
continue;
}
else
{
for (int k1 = 0; k1 < pi*2; k1++)//если еще не известно какая это монета, то мы проверяем номер данной монеты, с номерами монет из второй кучи.
{
if (j == nomera[k1])//если j монета одна из кучи
s = true; // то запоминаем это в переменной s
}
}
if (s)//если j монета кучи и до этого не было понятно, что она настоящая
{
moneti[j] = 1;// то запоминаем её как подозрительную
}
else//если j монета не кучи и до этого не было понятно, что она настоящая
{
moneti[j] = 2;//то запоминаем ее как настоящую
}
}
}
}
int nsusp=-111111;
int nuncl = -111111;
for (int i = 1; i < n+1; i++)
{
if (moneti[i] == 1)
{
suspect++;
nsusp = i;
}
else if (moneti[i] == 0)
{
unclear++;
nuncl = i;
}
}
if (suspect == 1)
Console.WriteLine(nsusp);
else if ((suspect == 0) && (unclear == 1))
Console.WriteLine(nuncl);
else
Console.WriteLine(0);
}
}
}