Республиканская олимпиада по информатике, 2015 год, 10-11 класс
Задача A. Контейнеры и отсеки
Вы главный разработчик в компании грузоперевозок Нурлаш и КО inc. Компании требуется, чтобы вы написали новый функционал для сортирующего робота. Робот контролирует $N$ отсеков, последовательно пронумерованных от 1 до $N$, и может выполнять два типа операций:- Добавить контейнер с номером $C$ в каждый отсек с $L$-го по $R$-ый
- Убрать последний контейнер из каждого отсека с $L$-го по $R$-ый
Вам даны операции в том порядке в котором их выполнял робот. Требуется определить, для каждого отсека, контейнер с каким номером является последним в нем после выполнения всех операций.
Входные данные
Первая строка входных данных содержит два числа — $N$, $M$ ($1 \leq N, M \leq 10^5$), количество отсеков и количество операций соответственно.Далее в $M$ строках содержится по три числа $L$, $R$ и $C$ ($1 \leq L \leq R \leq 10^5$, $0 \leq C \leq 10^9$), описание операций. Если $C = 0$, то это операция второго типа, иначе — первого.
Все числа целые и в строках разделены ровно одним пробелом. Также гарантируется, что не будет операций допускающих удаление из пустых отсеков.
Выходные данные
Выведите в единственной строке $N$ чисел, разделенных пробелом. Первое число — номер последнего контейнера в первом отсеке, второе - во втором, и т.д. Если отсек пуст, выведите $0$.Примеры:
Вход:5 3 1 5 1 2 4 0 4 5 10Ответ:
1 0 0 10 10
Оценивание:
Данная задача содержит две подзадачи:- $1 \leq N, M \leq 1000$. Подзадача оценивается в $40$ баллов.
- $1 \leq N, M \leq 10^5$. Подзадача оценивается в $60$ баллов.
Комментарий/решение:
я не уверен что код 100% правильный, тут не проверяют python
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int N,M;
cin>>N>>M;
vector<vector<int>> V(N);
for(int a = 0; a < M ; ++a){
int L,R,C;
cin>>L>>R>>C;
L--;
R--;
for(; L <= R ; ++L ){
if(C == 0){
V[L].pop_back();
}
else{
V[L].push_back(C);
}
}
}
for(int i = 0 ; i < N ; ++i){
if(V[i].empty())
{
cout<< 0 << " ";
}
else{
cout<< V[i].back()<< " ";
}
}
return 0;
}
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.