CF521D.Shop
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Vasya 玩一款非常著名且极受欢迎的 MMORPG 游戏。他的游戏角色拥有 k 项技能,目前第 i 项技能的数值为 ai。在游戏中,有一个通用的排名表,参与者根据所有技能的乘积进行降序排名。
Vasya 决定通过游戏商店“升级”他的角色。该商店提供了 n 种可用的提升方式;每种提升方式属于以下三类之一:
- 将第 i 项技能赋值为 b;
- 给第 i 项技能增加 b;
- 将第 i 项技能乘以 b。
遗憾的是:(a)每种提升只能使用一次;(b)Vasya 卡里的钱只够最多购买 m 个提升。请帮助 Vasya 获取最高排名。具体来说,请告诉 Vasya 应该购买哪些提升,以及应用这些提升的顺序,使得最终他的评级最大。如果有多种方案都能取得最大排名,输出任意一种即可。
输入格式
第一行包含三个整数 k,n,m(1≤k≤105,0≤m≤n≤105)——技能数、可出售的提升数量,以及 Vasya 能负担的最大提升数。
第二行包含 k 个以空格分隔的整数 ai(1≤ai≤106),表示各项技能的初始数值。
接下来 n 行,每行包含三个以空格分隔的整数 tj,ij,bj(1≤tj≤3,1≤ij≤k,1≤bj≤106)——表示第 j 个提升的类型(1 代表赋值,2 代表加法,3 代表乘法)、对应的技能编号及该次提升的参数 b。提升按输入顺序从 1 开始编号。
输出格式
第一行输出一个整数 l(0≤l≤m)——应使用的提升数量。
第二行输出 l 个不同的空格分隔的正整数 vi(1≤vi≤n)——所选用提升的编号,按应被依次应用的顺序输出。提升编号按输入从 1 开始。
输入输出样例
输入#1
2 4 3 13 20 1 1 14 1 2 30 2 1 6 3 2 2
输出#1
3 2 3 4
说明/提示
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?