349. Опять JSON’ы перекладывать (разминка)

Не решаласьЛёгкая

Всем хотя бы раз в жизни приходилось перекладывать JSON. Вот и для нового проекта под названием Единое хранилище необходимо переложить магазинные фиды. Для размещения на Яндекс Маркете магазины передают товары из своего ассортимент в JSON-файлах. Одно товарное предложение описывается так:

{
    "offer_id": <string>,
    "market_sku": <int>,
    "price": <int>
}

где offer_id — уникальный среди всех фидов магазина идентификатор предложения, market_sku — идентификатор товара на Яндекс Маркете, price — стоимость товара.

Весь фид магазина представляет собой JSON и выглядит так:

{
    "offers": [<offer>, <offer>, ...]
}

Вас попросили написать программу, которая объединит все фиды одного магазина в единый фид. Так как фид может получиться достаточно большим, требуется оставить только $m$ первых в порядке следования во входных данных товарных предложений.

Это разминочная задача, к которой мы размещаем готовое решения, чтобы вы могли познакомиться с нашей автоматической системой проверки решений. Ввод и вывод осуществляется через файлы, либо через стандартные потоки ввода-вывода, как вам удобнее.

Примеры решений:

GNU C++ 17 7.3.

Python 3.7.3.

Формат ввода

На первой строке входных данных содержатся целые числа $n$ и $m$ — количество фидов магазина и максимальное количество товарных предложений в итоговом фиде ($1 \le n \le 200, 1 \le m \le 4\cdot 10^4$).

Следующие $n$ строк содержат по одному магазинному фиду на строку. В одном фиде не больше 200 товарных предложений.

Гарантируется, что строка — валидный JSON и удовлетворяет формату фида. offer_id состоит из строчных и заглавных букв латинского алфавита и цифр, $1 \le |offer\_id| \le 10$, $1 \le market\_sku \le 2^{31}-1$, $1 \le price \le 10^6$.

Формат вывода

Выходной поток должен содержать один JSON-документ, удовлетворяющий формату товарного фида. Порядок товарных предложений, количество строк в документе и табуляция не имеют значения.

Примечание

Для решений на языке python доступны все стандартные библиотеки, включая json.

Для решений на языке Java доступна библиотека json-simple версии 1.1.1. Соответствующие import'ы могут выглядеть так:

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

Для решений на языке C++ доступна библиотека nlohmann/json v3.8.0. Соответствующие include выглядят так:

#include "json.hpp"

Для решений на golang доступны все стандартные пакеты, включая encoding/json, sort и другие.

Для решений на C# доступны библиотеки System.Text.Json и Newtonsoft.Json. Соответствующие using могут выглядеть так:

using Newtonsoft.Json;
using System.Text.Json;

Ограничения

Ограничение времени

2 с

Ограничение памяти

256 МБ

Пример 1

Ввод
2 3
{"offers": [{"offer_id": "offer1", "market_sku": 10846332, "price": 1490}, {"offer_id": "offer2", "market_sku": 682644, "price": 499}]}
{"offers": [{"offer_id": "offer3", "market_sku": 832784, "price": 14000}, {"offer_id": "offer4", "market_sku": 3234, "price": 100}]}
Вывод
{"offers":[{"market_sku":10846332,"offer_id":"offer1","price":1490},{"market_sku":682644,"offer_id":"offer2","price":499},{"market_sku":832784,"offer_id":"offer3","price":14000}]}

Теги

Нужно войти, чтобы отправить решение.Войти