antongrom68
11.10.2022 02:39

Покраска забора Время: 1000ms, Память: 128MB, Сложность: 15% В одной далекой стране жил был Виталик-Гитарист, да к тому же и народный певец да на дуде игрец. Его мама постоянно заставляла делать дела по дому, и на этот раз она попросила его покрасить забор. Забор состоит из прямоугольных панелей одинаковой длины и единичной ширины.

Виталик знает, что мама решила сэкономить на краске и купила самую дешевую, методом экспериментов он смог определить что если нанести краску не менее чем A слоев и не более чем B слоев, забор будет выглядеть как раз нормально. Виталя был достаточно хитер и решил свалить всю работу на младшего брата, который согласился с этим делом.

Для простоты брат решил красить забор секциями, нанося на панели забора текущей секции краску в один слой. Завершив покраску секции он произвольно выбирал другую секцию (и не факт, что эта секция не совпадала полностью или частично с уже покрашенной частью забора) и приступал к ее покраске. Таким образом некоторые панели забора он мог покрасить несколько раз, в то время как другие - ни разу.

Пока брат красил забор Виталик ушел играть на гитаре и петь свои любимые песни, а когда вернулся, он был повергнут в шок! Местами забор был покрыт очень большим слоев краски, а местами и вовсе не покрашен.

К счастью его брат обладал хорошей памятью и помнил какие секции и в каком порядке он красил. Теперь Виталик должен понять сколько панелей забора он не должен переделывать. Чтобы дефекты покраски были менее заметно, брат обязательно покрасил первую и последнюю панели забора.
Входные данные:

Во входном потоке в первой строке записано натуральное число N (N <= 106) - количество закрашенных секций. Во второй строке - натуральные числа A и B (A, B <= 100) - допустимое количество слоев краски. Далее идет список координат N секций в порядке их окрашивания (номер первой Xi и последней Xj панели забора, составляющее текущую секцию). Значения номеров панелей (координат) не превышают 1000.

Пример входного файла (input.txt):

4
1 1
1 2
3 4
5 8
3 6

Выходные данные:

Вывести единственное число - количество панелей которые не придется перекрашивать Виталику-гитаристу.

Пример выходного файла (output.txt):

4

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Shaurma021
22.09.2021 14:05
На Java:

class SearchPalin{
 public static void main(String args[]){
  String palinString = new java.util.Scanner(System.in).nextLine();
  System.out.print("\nПалиндром(-ы):\n  ");
  for(int wordStart = 0, wordEnd = 0; wordEnd<palinString.length(); wordEnd++)
   if(wordEnd+1==palinString.length() || palinString.charAt(wordEnd+1)==' '){
 String wordBeginning = "", wordEnding = "";
 for(int wordBe = wordStart;wordBe<wordEnd+1;wordBe++)wordBeginning+=palinString.charAt(wordBe);
 for(int wordEn = wordEnd;wordStart-1<wordEn;wordEn--)wordEnding+=palinString.charAt(wordEn);
 if(wordBeginning.equals(wordEnding)){
  for(int palinWord = wordStart;palinWord<=wordEnd;palinWord++)System.out.print(palinString.charAt(palinWord));
  System.out.print("\n  ");
 } wordStart = wordEnd+2;
   }
 }
}
0,0(0 оценок)
Ответ:
Danilalmaz
22.09.2021 14:05
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
  var s:=ReadLnString('Вводите:');
  s.ToWords.Where(x->x=ReverseString(x)).PrintLn;
end.

Тестовое решение:
Вводите: дед иван достал наган и пошел с ним в шалаш
дед наган и с в шалаш

Вариант, если исключить однобуквенные:

// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
  var s:=ReadLnString('Вводите:');
  s.ToWords.Where(x->x=ReverseString(x)).
    Where(x->x.Length>1).PrintLn;
end.

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