CF1332G.No Monotone Triples
NOI/NOI+/CTSC
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Given a sequence of integers a of length n, a tuple (i,j,k) is called monotone triples if
- 1≤i<j<k≤n;
- ai≤aj≤ak or ai≥aj≥ak is satisfied.
For example, a=[5,3,4,5], then (2,3,4) is monotone triples for sequence a while (1,3,4) is not.
Bob is given a sequence of integers a of length n in a math exam. The exams itself contains questions of form L,R, for each of them he is asked to find any subsequence b with size greater than 2 (i.e. ∣b∣≥3) of sequence aL,aL+1,…,aR.
Recall that an sequence b is a subsequence of sequence a if b can be obtained by deletion of several (possibly zero, or all) elements.
However, he hates monotone stuff, and he wants to find a subsequence free from monotone triples. Besides, he wants to find one subsequence with the largest length among all subsequences free from monotone triples for every query.
Please help Bob find out subsequences meeting the above constraints.
给定一个长度为 n 的整数序列 a,若三元组 (i,j,k) 满足以下条件,则称其为单调三元组(monotone triples):
- 1≤i<j<k≤n;
- 满足 ai≤aj≤ak 或 ai≥aj≥ak。
例如,当 a=[5,3,4,5] 时,(2,3,4) 是序列 a 的一个单调三元组,而 (1,3,4) 则不是。
鲍勃在一次数学考试中被给定了一个长度为 n 的整数序列 a。考试题目包含若干形如 L,R 的询问,对每个询问,他需要在子数组 aL,aL+1,…,aR 中找出一个长度大于 2(即 ∣b∣≥3)的子序列 b。
回顾定义:若序列 b 可通过从序列 a 中删除若干(可能为零个、也可能为全部)元素得到,则称 b 是 a 的一个子序列。
然而,鲍勃讨厌一切单调性质,因此他希望找到一个不含任何单调三元组的子序列。此外,对于每个询问,他希望找到所有不含单调三元组的子序列中长度最大者。
请帮助鲍勃找出满足上述所有约束条件的子序列。
输入格式
The first line contains two integers n, q (3≤n≤2⋅105, 1≤q≤2⋅105) — the length of sequence a and the number of queries.
The second line contains n integers a1,a2,…,an (1≤ai≤109), representing the sequence a.
Then each of the following q lines contains two integers L, R (1≤L,R≤n, R−L≥2).
第一行包含两个整数 n、q(3≤n≤2⋅105,1≤q≤2⋅105)—— 分别表示序列 a 的长度和查询次数。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),表示序列 a。
接下来的 q 行中,每行包含两个整数 L、R(1≤L,R≤n,且 R−L≥2)。
输出格式
For each query, output 0 if there is no subsequence b satisfying the constraints mentioned in the legend. You can print the empty line after but that's not mandatory.
Otherwise, output one integer k (k>2) denoting the length of sequence b, then output k integers i1,i2,…,ik (L≤i1<i2<…<ik≤R) satisfying that bj=aij for 1≤j≤k.
If there are multiple answers with the maximum length, print any of them.
对于每个查询,若不存在满足题面中所述约束条件的子序列 b,则输出 0。可在其后输出空行,但非必需。
否则,先输出一个整数 k(k>2),表示序列 b 的长度;然后输出 k 个整数 i1,i2,…,ik(满足 L≤i1<i2<…<ik≤R),使得对所有 1≤j≤k 均有 bj=aij。
若存在多个具有最大长度的答案,输出任意一个即可。
输入输出样例
输入#1
6 2 3 1 4 1 5 9 1 3 4 6
输出#1
3 1 2 3 0
说明/提示
For the first query, the given sequence itself is monotone triples free.
For the second query, it can be shown that there is no subsequence b with length greater than 2 such that b is monotone triples free.
对于第一个查询,给定序列本身不包含单调三元组。
对于第二个查询,可以证明:不存在长度大于 2 的子序列 b,使得 b 不包含单调三元组。
输入解题思路,AI测评打分。不知道怎么写?