P2174 小Z的神奇数列

    • 63通过
    • 297提交
  • 题目提供者 LittleZ
  • 评测方式 云端评测
  • 标签 二叉堆 高性能
  • 难度 提高+/省选-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目描述

    小Z最近在研究数列,他需要知道在他所研究的数列中,最大的数是多少(Max),最小的数是多少(Min),最大的数的最小的数次幂是多少(Max^Min),所有数的乘积是多少。要知道,这样的问题是肯定难不倒小Z的。但是,最近小Z突发奇想,想要研究下这个数列的更深层的性质,所以他决定不断的从这个数列中删去一些数,每次删除后都研究下当前数列。由于数列项数很大,这给小Z带来了很大的麻烦,于是小Z请你帮他写一个程序,来完成下列操作。

    1. D x:表示从数列中删除x,保证数列中一定会有x。

    2. B:输出当前数列中的最大数,保证数列不为空。

    3. S:输出当前数列中的最小数,保证数列不为空。

    4. M:输出Max^Min除以317847191的余数,其中Max为当前数列中的最大数,Min为当前数列中的最小数,保证数列不为空。

    5. T:输出数列中所有数的乘积除以317847191的余数,保证数列不为空。

    输入输出格式

    输入格式:

    第1行:两个正整数N,M,N表示初始数列的长度,M表示操作数。

    第2行:N个正整数,第i个数表示初始数列中的第i项Ai,数列中有可能会有相同的数(如遇到删除操作,则只需要删去其中任意一个)。

    第3~M+2行:每行表示一个操作,具体格式参见题目描述。

    输出格式:

    每行一个数,分别表示每个操作的结果(D x操作不需要有输出)。

    输入输出样例

    输入样例#1: 复制
    3 6
    2 6 9
    M
    D 9
    B
    S
    M
    T
    输出样例#1: 复制
    81
    6
    2
    36
    12

    说明

    【数据规模】

    49%的数据满足 N<=1000, M<=100, Ai<=4000

    100%的数据满足N<=1000000, M<=1000000, Ai<=100000000

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。