Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <set>
- #include <list>
- #include <map>
- void task1() {
- size_t n, k;
- std::cin >> n >> k;
- std::vector<int> values;
- for (auto& value : values) {
- std::cin >> value;
- }
- std::multiset<int> window;
- for (size_t i = 0; i < n; ++i) {
- window.insert(values[i]);
- if (window.size() > k) {
- window.erase(window.find(values[i - k]));
- }
- if (window.size() == k) {
- std::cout << *window.begin() << std::endl;
- }
- }
- }
- void task2() {
- size_t n;
- std::list<int> order;
- std::map<int, std::list<int>::iterator> mapping;
- for (size_t i = 0; i < n; ++i) {
- int value, afterValue;
- std::cin >> value >> afterValue;
- std::map<int, std::list<int>::iterator>::iterator it = mapping.find(afterValue);
- if (it != mapping.end()) {
- auto position = it->second;
- ++position;
- mapping[value] = order.insert(position, value);
- } else {
- mapping[value] = order.insert(order.begin(), value);
- }
- }
- for (auto value : order) {
- std::cout << value << " ";
- }
- }
- int main() {
- std::vector<int> a = {1,2,45,6};
- std::list<int> b = {100, 200, 300, 400};
- std::copy(a.begin(), a.end(), std::inserter(b, ++b.begin()));
- for (auto value : b) {
- std::cout << value << std::endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement