Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <queue>
- using namespace std;
- int main()
- {
- ifstream input("input.txt");
- ofstream output("output.txt");
- queue<int> queue[3]; //три очереди
- int inp; // считанный элемент
- int count = 0; // колличество элементов в текущей очереди
- int q = 0; //текущая очередь
- while (input >> count) { //читаем колличество элементов в текущей очереди
- int last; // последний прочтенный элемент
- for (int i = 0; i < count; i++) // цикл чтения очереди
- if (input >> inp) // проверка правильности чтения
- if (queue[q].empty() || last < inp) { // если предидущий элемент больше текущего
- queue[q].push(inp); // вталкиваем в текущую очередь
- last = inp; // делаем предидущий элемент равным текущему
- }
- else
- return 1; // выход из программы
- else {
- return 1; // выход из программы
- }
- q++; // следущая очередь
- }
- while (!(queue[0].empty() && queue[1].empty() && queue[2].empty())) { // пока есть хотя бы одна не пустая очередь
- int min = 0; // минимальное значение в ноль
- for (int i = 0; i < 3; i++) // проходимся по очередями ...
- if (!queue[i].empty()) // если текущая очередь непуста
- if (!queue[min].empty()) { // если минимальная очередь не пуста ..
- if (queue[i].front() < queue[min].front()) min = i; //... и ищем минимальное на выходе каждой очереди
- }
- else
- min = i; // .. в противном случае делаем текущую очередь минимальной
- output << min+1 << " " << queue[min].front() << endl; // выводим минимальный элемент
- queue[min].pop(); // удаляем минимальный элемент.
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement