В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
labzaekaterina
labzaekaterina
17.04.2021 23:53 •  Информатика

На любом языке.
недавно глеб всерьёз озаботился проблемами экологии: кругом говорят о потеплении, тоннах пластика в океанах, нехватке ресурсов. «современные проблемы требуют современных
решений», — подумал он. поэтому, не желая дальше загрязнять воздух выхлопами своего автомобиля «волга», глеб прикупил себе новенький электрокар от компании tesla. при этом он узнал, что
без подзарядки такое средство передвижения может проехать лишь k километров.
глеб живёт в стране, где n городов и m двухсторонних дорог, их соединяющих. дорога с номером
i связывает города pi и qi и имеет длину ri километров. в дорожной сети нет дорог, соединяющих
город с самим собой, а между двумя разными может быть не более одной дороги. глеб
живёт в городе под номером u, где воздух кажется ему слишком . так что с детства
его главная мечта — переехать в город v. и если на своей старенькой «волге» наш герой никак не
мог добраться до конечного пункта, то теперь, когда у него есть новенький электрокар, он всерьёз
намерен осуществить свою мечту.
так как электрокары появились относительно недавно, заправки для них есть пока только в
l городах: a1, a2, . . , al
. глеб просит в осуществлении своей мечты, так что вам предстоит
узнать, сможет ли он добраться до города v, и если да, то какое наименьшее количество раз придётся
заправиться. когда глеб садится в машину в городе u, она уже полностью заряжена. оказавшись в
городе с заправкой, глеб может как использовать её, так и проигнорировать.
формат входных данных
первая строка содержит пять целых чисел: k — сколько километров может проехать электрокар
без подзарядки, n — количество городов, m — количество дорог, u — номер города глеба, и v — номер
города, куда хочет добраться глеб (1 6 k 6 500, 2 6 n 6 10 000, 0 6 m 6 10 000, 1 6 u, v 6 n, u 6= v).
в следующих m строках дороги. в i-й из этих строк записаны три целых числа pi
,
qi и ri — номера двух городов, которые соединяет очередная двухсторонняя дорога, и её длина
(1 6 pi
, qi 6 n, 1 6 ri 6 109
).
следующая строка содержит целое число l — количество заправок (0 6 l 6 n). наконец, последняя строка содержит l целых чисел a1, a2, . . , al — номера городов с заправками в порядке возрастания (1 6 a1 < a2 < . . < al 6 n).
формат выходных данных
выведите «-1» (без кавычек), если невозможно доехать от города с номером u до города с
номером v, или минимальное количество заправок, если это возможно.

Показать ответ
Ответ:
нуралик
нуралик
14.09.2022 17:00
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
begin
  var a:=MatrixRandom(7,7,0,9);
  var k:=0;
  for var i:=0 to 6 do begin
    for var j:=0 to 6 do begin
      Write(a[i,j]:3);
      if a[i,j] in [1..5] then Inc(k)
      end;
    Writeln
    end;
  Writeln('Кол-во элементов на [1,5]: ',k)
end.

Тестовое решение:
  2  1  7  3  3  2  7
  9  2  9  2  0  5  5
  4  2  6  9  4  6  0
  1  0  3  5  4  5  9
  6  3  6  0  2  0  8
  0  8  4  3  2  1  8
  6  0  4  4  5  4  0
Кол-во элементов на [1,5]: 27

Вариант "совсем для школы"

const
  n=7;
var
  a:array[1..n,1..n] of integer;
  i,j,k:integer;
begin
  Randomize;
  k:=0;
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j]:=Random(10);
      Write(a[i,j]:3);
      if a[i,j] in [1..5] then Inc(k)
      end;
    Writeln
    end;
  Writeln('Кол-во элементов на [1,5]: ',k)
end.
0,0(0 оценок)
Ответ:
kalinin11ccc
kalinin11ccc
18.03.2022 18:46
"Типовой школьный" Паскаль:

// PascalABC.Net 3.0, сборка 1064
const
  k = 100;

var
  s, wd: string;
  i, j, m, n, pt, step: integer;
  Words, WordsSort: array[1..k] of string;
  InOrder: boolean;

begin
  Write('Введите строку: '); Readln(s);
  n := Length(s); pt := 1; m := 0;
  repeat
    // Пропускаем все символы до первого непробельного
    while pt <= n do
      if Ord(s[pt]) <= 32 then Inc(pt) else break;
    if pt <= n then begin
      // Выделяем очередное слово
      wd := '';
      while pt <= n do
        if Ord(s[pt]) > 32 then begin wd := wd + s[pt];Inc(pt) end
        else break;
      if wd <> '' then begin Inc(m);Words[m] := wd end
    end
  until pt > n;
  // Теперь Words содержит все m слов.
  // Отсортируем их в массиве WordsSort методом Шелла
  for i := 1 to m do WordsSort[i] := Words[i];
  step := m div 2;
  while step > 0 do begin
    for j := m - step downto 1 do begin
      i := j;
      while i <= m - step do begin
        if WordsSort[i] > WordsSort[i + step] then begin
          wd := WordsSort[i];
          WordsSort[i] := WordsSort[i + 1];
          WordsSort[i + 1] := wd
        end;
        i := i + step
      end
    end;
    step := step div 2
  end;
  // Осталось поэлементно сравнить оба массива
  InOrder := true; i := 1;
  while InOrder and (i <= m) do
  begin InOrder := (Words[i] = WordsSort[i]); Inc(i) end;
  if m = 0 then Writeln('Строка не содержит слов')
  else
    if InOrder then Writeln('Cлова упорядочены')
    else Writeln('Cлова не упорядочены')
end.

Тестовое решение:
Введите строку: слово1    слово2    слово3    слово4 слово5
Cлова упорядочены

Введите строку: слово1    слово2    слово4    слово3 слово5
Cлова не упорядочены

"Современный" вариант решения на Паскале:

// PascalABC.Net 3.0, сборка 1064
var
  s:string;
begin
  Write('Введите строку: '); Readln(s);
  var Delim:=Range(0,32).Select(x->Chr(x)).ToArray;
  var Words:=s.Split(Delim).Where(x->x<>'');
  var WordsSort:=Words.Sorted;
  if Words.SequenceEqual(WordsSort) then Writeln('Cлова упорядочены')
  else Writeln('Cлова не упорядочены')
end.

Тестовое решение совпадает с вышеприведенным.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота