欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1802A.Likes
Likes
题目描述
Nikita 最近举办了一场非常有争议的比赛,赛后他的贡献度变化得非常快。
公告在主页上悬挂了 秒。在第 秒,第 号用户要么点赞,要么取消点赞(Nikita 这题很幸运,没有踩)。如果 ,则第 号用户点了赞;如果 ,则 号用户取消了点赞。每个用户点赞和取消点赞最多各做一次。如果之前没有点赞,则该用户不能取消点赞。
由于比赛后 Nikita 的贡献度变得非常糟糕,他想分析公告挂在主页期间他的贡献度是如何变化的。他向平台的创建者请求提供 的序列。但由于平台不完善,序列 被打乱了。
你得到了一个乱序的 序列,描述了用户的操作。你需要依次告诉第 到第 秒时,该帖子上可能的最大和最小点赞数。
输入格式
输入的第一行为一个整数 (),表示测试用例数。
每个测试用例的第一行为一个整数 (),表示公告在主页悬挂的秒数。
接下来一行有 个整数 (),表示打乱后的数组 。保证存在某种排列使之为合法操作序列。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出两行,每行包含 个数字。
第一行为对于每个时刻 ,该时刻 Nikita 公告上可能的最大点赞数。
第二行为该时刻可能的最小点赞数。
说明/提示
在第一个测试用例中,最大值由下列排列得到:。而最小值由下列排列得到:。
在第三个测试用例中,所有最大值由排列 获得。最小值由如下排列获得:。
由 ChatGPT 5 翻译
样例
5
3
1 2 -2
2
1 -1
6
4 3 -1 2 1 -2
5
4 2 -2 1 3
7
-1 6 -4 3 2 4 1
1 2 1
1 0 1
1 0
1 0
1 2 3 4 3 2
1 0 1 0 1 2
1 2 3 4 3
1 0 1 2 3
1 2 3 4 5 4 3
1 0 1 0 1 2 3
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |