valeriacom11
11.11.2022 12:40

В ситуации эпидемии важна социальная дистанция. В музей одновременно прибыли несколько групп. Постройте график посещения залов музея для каждой группы так, чтобы ни одного не было пропущено, и при этом на одной точке одновременно не находилось больше одной группы. Считайте, что группы начинают осмотр одновременно, находясь в зале 1 минуту, время перемещения в минутах задано значениями длин рёбер. Допускается повторное посещение зала.

Карта музея одинаковая для всех тестов и представлена в виде графа, заданного числом вершин (от 1 до N) и набором рёбер (указывается также длина ребра — время пути между залами музея в минутах).

В тексте ниже первая строка — число вершин и рёбер; далее следуют номера соединяемых вершин и длина каждого ребра.

15 21
1 2 10
1 15 14
1 6 16
2 3 6
3 6 9
3 4 6
4 5 7
4 7 10
5 6 11
5 7 13
7 8 3
7 10 10
8 9 12
9 10 5
10 11 7
11 12 7
11 13 11
11 14 21
12 15 16
13 14 20
13 15 14
На вход программа получит набор чисел — номера залов — точка начала осмотра для каждой группы (целые числа от 1 до 15, разделённые пробелом). В ответ нужно вывести последовательность залов для каждой группы в отдельной строке (сохраняя порядок групп). Программа визита ограничена 200 минутами.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
LeraAlfeeva15
04.02.2021 17:55
Program textFind;
uses StrUtils;
var text,buffer : String;
var tpos,lastpos,counter,biggest : Integer;
begin
  tpos := 0;
  text := '';
  while(tpos = 0) do begin
    readln(buffer);
    text += buffer;
    tpos := pos('.',buffer)
  end;
  lastpos := 1;
  tpos := PosEx(' ',text,lastpos);
  if tpos = 0 then 
    tpos := PosEx('.',text,lastpos);
  biggest := tpos-1;  lastpos := tpos+1;
  while(not (tpos = 0)) do begin
    tpos := PosEx(' ',text,lastpos);
    if tpos = 0 then
        tpos := PosEx('.',text,lastpos);
    if (tpos-lastpos) > biggest then
        biggest := tpos-lastpos; 
   lastpos := tpos+1;
  end;
  lastpos := 1;  counter := 0;
  tpos := PosEx(' ',text,lastpos);
  if tpos = 0 then
    tpos := PosEx('.',text,lastpos);
  while(not (tpos = 0)) do begin
    if (tpos-lastpos) = biggest then
        counter += 1;
    lastpos := tpos + 1;
    tpos := PosEx(' ',text,lastpos);
    if tpos = 0 then
        tpos := PosEx('.',text,lastpos);
  end;
writeln(counter);
end.
0,0(0 оценок)
Ответ:
diiann
04.11.2022 06:02
#include <iostream>
using namespace std;

int main()
{
    cout << "Enter month num: " << endl;
    unsigned month = 0;
    cin >> month;
    if (month <= 12 && month >= 1) {
    switch (month / 3) {
    case 1:
        cout << "Spring" << endl;
        break;
    case 2:
        cout << "Summer" << endl;
        break;
    case 3:
        cout << "Autumn" << endl;
        break;
    default:
        cout << "Winter" << endl;
        break;
    }
    } else {
     cout << "NO" << endl;   
    }
return 0;
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота