Предмет: Информатика, автор: ermaks2437

B. Гости

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

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

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

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

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

Ответы

Автор ответа: Proger228
0

Ответ:

Объяснение:

#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;

}


avarvus99p6o7sj: Что такое lastday? А так решение рабочее, спасибо!!!
Proger228: lastday - день отъезда для человека, которого мы рассматриваем в цикле
broforceplay: решение не рабочие, TL
Похожие вопросы
Предмет: Английский язык, автор: akeykenna
Предмет: Русский язык, автор: simpsoon
20. Задание 8
Определите слово, в котором пропущена безударная чередующаяся гласная корня. Выпишите это слово, вставив пропущенную букву.

к..ламбур
зат.. мнить
пок..ряющий
зап..реться
зак.. лдованный
21. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

бе..характерный, чере..чур;
сверх..естественное, п..едестал;
пр..ятный, пр..выше (всего);
пред..стория, вз..мать (дань);
о..дача, пре..ставить.
22. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

н..зревший, не..тмеченный;
под..тожить, дез..нформация;
ни..падающий, и..черпать;
пр..общиться, пр..одолевать;
интер..ер, пред..явитель.
23. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

ра..досадовать, нера..чётливый
о..гадать, по..кидывать
пр..украшивать, пр..слонившийся
под..греть, поз..вчера
ра..цветить, бе..вкусный
24. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

пр..ступно, пр..рвать (молчание)
бе..перспективный, в..бодриться
о..бросить, по..прыгнуть
пр..вращение, пр..плясывать
с..причастный, поз..вчера
25. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

и..подлобья, ра..мечтался;
грузопод..ёмник, в..юга;
с..змала, спорт..гра;
пр..мудрый, пр..бывать (на отдыхе);
в..зомнить, н..перегонки.
26. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

бе..жалостность, в..тревожиться;
раз..чаровать, с..брать;
прем..ера, с..ёжиться;
беспр..станно, сопр..частность;
без..нициативный, на..граться.
27. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

не..говорчивый, бе..мятежный;
пере..давать, чре..мерный;
зав..южило, в..едливый;
бе..церемонный, в..пыхнуть;
сверх..зысканный, от..граться.
28. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.
пр..горок, пр..тихнуть;
бе..конечный, ра..буженный;
зав..южить, об..ект;
п..дбежать, пр..бабушка;
без..сходный, сверх..нициативный.
29. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

и..подтишка, ра..бег
пр..ютить, пр..поднёс
под..скать, за..грал
о..гладил, по..ставка
нен..глядный, з..йти

Примечание.
Внимание: по сравнению с демоверсией изменена формулировка задания.
30. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

пр..двинутый, пр...отцы;
и..тратить, ра..познать;
пр..дираться (к кому-либо), пр..лестный;
без..сходность, сверх..нтенсивный;
р..яный, из..ятие.
31. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

пр..восходный, пр..норовиться;
на..бровный, о..биться;
пр..чудливый, пр..града;
не..быточный, не..деланный;
по..скать, с..грать.
32. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

об..скать, дез..нфекция
по..твердить, о..нимать (у собаки)
пр..поднести, пр..вивка
об..йти, пр..дедушка
пр..казать, пр..уныть
33. Задание 9
Определите ряд, в котором в обоих словах пропущена одна и та же буква. Выпишите эти слова, вставив пропущенную букву.

по..кладка, о..бойный
пр..встать, пр..клеить
на..граться, из..скать
бар..ерный, с..язвить
пр..израстать, пр..дедушка