Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ReadWriter.h"
- //Node.h подключен в ReadWriter.h, поэтому здесь не надо
- using namespace std;
- //Можно добавлять любые вспомогательные методы и классы для решения задачи.
- //Задание реализовать метод декодирования
- void decodeLZ77(Node* arr, int n, string& res)
- {
- for (int i = 0; i < n; i++)
- {
- if (arr[i].len == 0) {
- res += arr[i].ch;
- continue;
- }
- auto start = static_cast<int>(res.length() - arr[i].offs);
- for (int j = 0; j < arr[i].len; j++) {
- res += res[start + j];
- }
- res+=arr[i].ch;
- }
- }
- int main(int argc, const char * argv[])
- {
- ReadWriter rw;
- int n = rw.readInt();
- Node* arr = new Node[n];
- rw.readCode(arr, n);
- string res = "";
- //декодируем в строку
- decodeLZ77(arr, n, res);
- //записываем ответ в файл
- rw.writeString(res);
- delete[] arr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement