- Описание
- Отправленные решения
50. Опять JSON’ы перекладывать (разминка)
Всем хотя бы раз в жизни приходилось перекладывать JSON. Вот и для нового проекта под названием Единое хранилище
необходимо переложить магазинные фиды. Для размещения на Яндекс Маркете магазины передают товары из своего ассортимент в JSON-файлах. Одно товарное предложение описывается так:
{
"offer_id": <string>,
"market_sku": <int>,
"price": <int>
}
где offer_id
— уникальный среди всех фидов магазина идентификатор предложения, market_sku
— идентификатор товара на Яндекс Маркете, price
— стоимость товара.
Весь фид магазина представляет собой JSON и выглядит так:
{
"offers": [<offer>, <offer>, ...]
}
Вас попросили написать программу, которая объединит все фиды одного магазина в единый фид. Так как фид может получиться достаточно большим, требуется оставить только первых в порядке следования во входных данных товарных предложений.
Это разминочная задача, к которой мы размещаем готовое решения, чтобы вы могли познакомиться с нашей автоматической системой проверки решений. Ввод и вывод осуществляется через файлы, либо через стандартные потоки ввода-вывода, как вам удобнее.
Примеры решений:
Формат ввода
На первой строке входных данных содержатся целые числа и — количество фидов магазина и максимальное количество товарных предложений в итоговом фиде ().
Следующие строк содержат по одному магазинному фиду на строку. В одном фиде не больше 200 товарных предложений.
Гарантируется, что строка — валидный JSON и удовлетворяет формату фида.
offer_id
состоит из строчных и заглавных букв латинского алфавита и цифр, , , .
Формат вывода
Выходной поток должен содержать один 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}]}