class Program
{
static int Count = 0, N = 0; // кол-во студентов и время экзамена
static int[] timeT; // время требующееся для сдачи теории каждым студентом
static int[] timeZ; // то же для задачи
static bool[] sdalT;// сдал теорию
static bool[] sdalZ;//задачу
static bool solve(int k)
{
// ???
}
static void Main(string[] args)
{
//ввод
StreamReader r = new StreamReader("input.txt");
string[] tmp = r.ReadLine().Split(' ');
Count = Convert.ToInt32(tmp[0]);
N = Convert.ToInt32(tmp[1]);
string[] tmp1 = r.ReadLine().Split(' ');
string[] tmp2 = r.ReadLine().Split(' ');
timeT = new int[Count];
timeZ = new int[Count];
sdalT = new bool[Count];
sdalZ = new bool[Count];
for (int i = 0; i < Count; i++)
{
timeT = Convert.ToInt32(tmp1);
timeZ = Convert.ToInt32(tmp2);
}
r.Close();
//
// решение
if (solve(0))
{
// вывод ответа
}
else Console.WriteLine("Преподы не успеют принять экзамен за {0} минут", N);
Console.ReadKey();
}
}
NP-полная задача + рекурсия. [C#]
Задание: написать рекурсивную программу решения NP-полной задачи:
Цитата:
Группа студентов сдает экзамен. В билете 2 вопроса и задача. Экзамен принимают 2 преподавателя, один принимает теорию, другой задачу, порядок сдачи вопросов билета фиксирован. Время, требующееся для сдачи каждым студентом каждой части билета известно. Успеют ли преподаватели принять экзамен в течение N часов? Предложить порядок сдачи экзамена, чтобы время сдачи было минимально.
Не получается придумать рекурсивную схему решения :confused:
Код: