CF1288E.Messenger Simulator
普及+/提高
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Polycarp is a frequent user of the very popular messenger. He's chatting with his friends all the time. He has n friends, numbered from 1 to n.
Recall that a permutation of size n is an array of size n such that each integer from 1 to n occurs exactly once in this array.
So his recent chat list can be represented with a permutation p of size n. p1 is the most recent friend Polycarp talked to, p2 is the second most recent and so on.
Initially, Polycarp's recent chat list p looks like 1,2,…,n (in other words, it is an identity permutation).
After that he receives m messages, the j-th message comes from the friend aj. And that causes friend aj to move to the first position in a permutation, shifting everyone between the first position and the current position of aj by 1. Note that if the friend aj is in the first position already then nothing happens.
For example, let the recent chat list be p=[4,1,5,3,2]:
- if he gets messaged by friend 3, then p becomes [3,4,1,5,2];
- if he gets messaged by friend 4, then p doesn't change [4,1,5,3,2];
- if he gets messaged by friend 2, then p becomes [2,4,1,5,3].
For each friend consider all position he has been at in the beginning and after receiving each message. Polycarp wants to know what were the minimum and the maximum positions.
Polycarp 是一款非常流行即时通讯软件的常客,他一直在与朋友们聊天。他共有 n 位朋友,编号从 1 到 n。
回忆一下:一个大小为 n 的排列(permutation)是指一个长度为 n 的数组,其中 1 到 n 的每个整数恰好出现一次。
因此,他最近的聊天列表可用一个大小为 n 的排列 p 表示:p1 是 Polycarp 最近聊天的朋友,p2 是第二近的,依此类推。
初始时,Polycarp 的最近聊天列表 p 为 1,2,…,n(即单位排列,identity permutation)。
随后,他收到 m 条消息,其中第 j 条消息来自朋友 aj。这会导致朋友 aj 移动到排列的首位,而原来位于首位至 aj 当前位置之间的所有朋友均向后移动一位。注意:若朋友 aj 已处于首位,则列表不发生变化。
例如,设当前聊天列表为 p=[4,1,5,3,2]:
- 若他收到朋友 3 发来的消息,则 p 变为 [3,4,1,5,2];
- 若他收到朋友 4 发来的消息,则 p 保持不变:[4,1,5,3,2];
- 若他收到朋友 2 发来的消息,则 p 变为 [2,4,1,5,3]。
对每位朋友,考虑其在初始状态以及每次收到消息后的所有位置。Polycarp 想知道每位朋友所处过的最小位置和最大位置。
输入格式
The first line contains two integers n and m (1≤n,m≤3⋅105) — the number of Polycarp's friends and the number of received messages, respectively.
The second line contains m integers a1,a2,…,am (1≤ai≤n) — the descriptions of the received messages.
第一行包含两个整数 n 和 m(1≤n,m≤3⋅105)—— 分别表示 Polycarp 的朋友数量和收到的消息数量。
第二行包含 m 个整数 a1,a2,…,am(1≤ai≤n)—— 表示收到的每条消息的描述。
输出格式
Print n pairs of integers. For each friend output the minimum and the maximum positions he has been in the beginning and after receiving each message.
输出 n 对整数。对于每位朋友,输出他在初始时以及每次收到消息后的最小和最大位置。
输入输出样例
输入#1
5 4 3 5 1 4
输出#1
1 3 2 5 1 4 1 5 1 5
输入#2
4 3 1 2 4
输出#2
1 3 1 2 3 4 1 4
说明/提示
In the first example, Polycarp's recent chat list looks like this:
- [1,2,3,4,5]
- [3,1,2,4,5]
- [5,3,1,2,4]
- [1,5,3,2,4]
- [4,1,5,3,2]
So, for example, the positions of the friend 2 are 2,3,4,4,5, respectively. Out of these 2 is the minimum one and 5 is the maximum one. Thus, the answer for the friend 2 is a pair (2,5).
In the second example, Polycarp's recent chat list looks like this:
- [1,2,3,4]
- [1,2,3,4]
- [2,1,3,4]
- [4,2,1,3]
在第一个例子中,Polycarp 最近的聊天列表如下所示:
- [1,2,3,4,5]
- [3,1,2,4,5]
- [5,3,1,2,4]
- [1,5,3,2,4]
- [4,1,5,3,2]
因此,例如,朋友 2 的位置依次为 2,3,4,4,5。其中最小值为 2,最大值为 5。故朋友 2 的答案为二元组 (2,5)。
在第二个例子中,Polycarp 最近的聊天列表如下所示:
- [1,2,3,4]
- [1,2,3,4]
- [2,1,3,4]
- [4,2,1,3]
输入解题思路,AI测评打分。不知道怎么写?