CF220E.Little Elephant and Inversions
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
The Little Elephant has array a, consisting of n positive integers, indexed from 1 to n. Let's denote the number with index i as a__i.
The Little Elephant wants to count, how many pairs of integers l and r are there, such that 1 ≤ l < r ≤ n and sequence b = _a_1_a_2... a__l__a__r__a__r + 1... a__n has no more than k inversions.
An inversion in sequence b is a pair of elements of the sequence b, that change their relative order after a stable sorting of the sequence. In other words, an inversion is a pair of integers i and j, such that 1 ≤ i < j ≤ |b| and b__i > b__j, where |b| is the length of sequence b, and b__j is its j-th element.
Help the Little Elephant and count the number of the described pairs.
小象有一个由 n 个正整数组成的数组 a,下标从 1 到 n。我们用 ai 表示下标为 i 的数。
小象希望统计满足如下条件的整数对 (l,r) 的个数:1≤l<r≤n,且序列 b=a1a2…alarar+1…an 中的逆序对数目不超过 k。
序列 b 中的一个逆序对,是指在对 b 进行稳定排序后相对顺序发生改变的一对元素。换言之,一个逆序对是一对整数 (i,j),满足 1≤i<j≤∣b∣ 且 bi>bj,其中 ∣b∣ 表示序列 b 的长度,bj 是其第 j 个元素。
请帮助小象计算满足上述条件的整数对的个数。
输入格式
The first line contains two integers n and k (2 ≤ n ≤ 105, 0 ≤ k ≤ 1018) — the size of array a and the maximum allowed number of inversions respectively. The next line contains n positive integers, separated by single spaces, _a_1, _a_2, ..., a__n (1 ≤ a__i ≤ 109) — elements of array a.
Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use cin, cout streams or the %I64d specifier.
第一行包含两个整数 n 和 k(2≤n≤105,0≤k≤1018),分别表示数组 a 的大小以及允许的最大逆序对数量。
接下来一行包含 n 个正整数,以单个空格分隔:a1, a2, …, an(1≤ai≤109)—— 数组 a 的元素。
请注意,在 C++ 中读写 64 位整数时,请勿使用 %lld 说明符。推荐使用 cin、cout 流,或 %I64d 说明符。
输出格式
In a single line print a single number — the answer to the problem.
在一行中输出一个数字——即该问题的答案。
输入输出样例
输入#1
3 1 1 3 2
输出#1
3
输入#2
5 2 1 3 2 1 7
输出#2
6
输入解题思路,AI测评打分。不知道怎么写?