М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
alianavladova
alianavladova
25.07.2021 13:01 •  Информатика

B. Гости Вася переехал из своего родного города и очень скучает по старым друзьям. К сожалению, Вася снимает маленькую квартиру и одновременно в гости к нему может приехать только один друг.

Каждый друг сказал Васе два числа A и B - с какого по какой день он может приехать в гости. Каждый друг приезжает и уезжает в полдень. Каждый друг может приехать к Васе только один раз и остаться у него на несколько дней. Вася хотел бы, чтобы суммарное количество дней, когда у него в гостях есть кто-нибудь из друзей, было максимальным ему определить даты приезда для каждого из друзей так, чтобы они не пересекались (допустима ситуация, что в один день один из друзей приезжает, а другой - уезжает) и суммарное время, когда у Васи в гостях есть кто-то из друзей, было максимальным.

Формат ввода
В первой строке записаны целое число N (1 ≤ N ≤ 100000) - количество друзей Васи.

В следующих N строках записано по два целых числа Ai и Bi (оба числа от 1 до 109) - возможное время приезда i-го друга.

Формат вывода
Выведите N пар чисел Li и Ri - номера дней, в которые приедет и уедет i-й друг соответственно (Ai ≤ Li ≤ Ri ≤ Bi). Если i-го друга приглашать не нужно, выведите пару чисел -1 -1. Если правильных ответов несколько - выведите любой из них.

👇
Ответ:
navozovaleksejj
navozovaleksejj
25.07.2021

Объяснение:

#include <iostream>

#include<vector>

#include <algorithm>

using namespace std;

int main() {

ios::sync_with_stdio(false);

int N, A, B;

cin >> N;

vector < vector <int>> IO;

int lastDay = 0;

for (int i = 0; i <  N; i++) {

 cin >> A >> B;

 IO.push_back(vector<int>());

 IO[i].push_back(A);

 IO[i].push_back(B);

 IO[i].push_back(i);

}

sort(IO.begin(), IO.end());

for (int i = 0; i < N; i++)

{

 if (lastDay >= IO[i][1]) {

  IO[i][0] = -1;

  IO[i][1] = -1;

 }

 else {

  if (lastDay < IO[i][0]) {

   lastDay = IO[i][1];

  }

  else if (lastDay >= IO[i][0]) {

   IO[i][0] = lastDay+1;

   lastDay = IO[i][1];

  }

 }

}

for (int i = 0; i < N; i++) {

 for (int j = 0; j < N; j++) {

  if (IO[j][2] == i) {

   cout << IO[j][0] << " " << IO[j][1] << endl;

   break;

  }

 }

}

return 0;

}

4,6(87 оценок)
Открыть все ответы
Ответ:
830927
830927
25.07.2021

1. Сайт содержит 5 страниц (главная, 4 страницы без темы (полагаю, это уже Ваша работа), запустится, естественно, только у Вас на компьютере.

2. На каждой странице задан фон, цвет шрифта и размер шрифта. Вы можете менять эти параметры по своему усмотрению. О том, как это сделать, разъясню в комментариях, если будет такая необходимость.

2.1 На каждой странице содержатся гиперссылки (переход на следующую страницу, на предыдущую и возврат на главную страницу) и картинки. Картинки в примере называются "1.png", "2.png" и так далее. Найдете любые картинки по выбранной Вами теме и назовете их, как указано в html-разметке.

3. На главной странице сформирован список, содержащий ссылки на 4 страницы сайта.

Решение поставленной задачи приложено в виде текстового файла, содержащего разметку для 5 html-страниц. Нужно будет создать 5 текстовых файлов с блокнота и назвать их так, как указано в решении (не забыть изменить расширение на .html)

4,7(52 оценок)
Ответ:

Так-с, у нас 5-ти буквенные слова.

Каждую букву можно использовать в слове 1 раз, так еще и гласную можно только 1, следовательно...

Рассмотрим вариант, что на первом месте стоит А.

Тогда на первом месте может стоять 1 буква, на втором 5 букв.

На третьем 4, на четвертом 3, на пятом 2.

1 * 5 * 4 * 3 * 2 = 120 вариантов

Но гласная может стоять и на втором, и на третьем месте и тд...

Есть 5 вариантов ее расстановки, следовательно.

120 * 5 = 600

А гласная буква у нас не одна, а две, значит, мы должны количество умножить на 2.

600 * 2 = 1200

ответ: 1200

4,6(65 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ