#P1389. 【华为】2024-8-21-第一题-数据重删

【华为】2024-8-21-第一题-数据重删

题目描述

薯条哥正在进行数据存储优化。他发现存储池内有许多重复的数据块。数据重删的目标是将这些重复的数据块合并,保留一个副本,并在第一个出现的数据块后面增加重复次数。

现在,他有一串数据,需要判断每个数据块是否与之前的数据块重复。如果重复,则删除该块,并在第一个出现的数据块后面增加重复计数。最终输出经过重删处理的数据内容。

输入描述

第一行输入两个整数n,k(1kn105)n,k(1\le k\le n\le 10^5) ,分别表示数据块的总个数和每个数据块的大小。

第二行输入nn个正整数,表示存储的数据块。数据块按顺序排列,大小为kk的数据块依次从这些数据中提取。

输出描述

输出去除重复数据后的结果,以数字结尾。(最后一个数字不要有空格)输出内容的顺序和输入数据块的顺序保持一致。

样例1

输入

8 2 
1 2 3 4 1 2 3 4

输出

1 2 2 3 4 2

样例解释

总共88个数据,数据块的大小为22,按新窗口进行切片表示一个数据块,分别得到数据块为[1,2],[3,4][1,2],[3,4][1,2],[3,4][1,2],[3,4]其中第一个数据块和第三个数据块相同,

第二个数据块和第四个数据块相同,可以分别进行重测,重测之后数据块[1,2][1,2]的计数变为22,表示有两个相同的数据块[1,2][1,2],同理[3,4][3,4]的数据块计数变为22

样例2

输入

8
3
3 4 5 3 4 5 5 4

输出

3 4 5 2 5 4 1