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.

小象有一个由 nn 个正整数组成的数组 aa,下标从 11 到 nn。我们用 aia_i 表示下标为 ii 的数。

小象希望统计满足如下条件的整数对 (l,r)(l, r) 的个数:1≤l<r≤n1 \leq l < r \leq n,且序列 b=a1a2…alarar+1…anb = a_1 a_2 \dots a_l a_r a_{r+1} \dots a_n 中的逆序对数目不超过 kk。

序列 bb 中的一个逆序对,是指在对 bb 进行稳定排序后相对顺序发生改变的一对元素。换言之,一个逆序对是一对整数 (i,j)(i, j),满足 1≤i<j≤∣b∣1 \leq i < j \leq |b| 且 bi>bjb_i > b_j,其中 ∣b∣|b| 表示序列 bb 的长度,bjb_j 是其第 jj 个元素。

请帮助小象计算满足上述条件的整数对的个数。

输入格式

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.

第一行包含两个整数 nn 和 kk(2≤n≤1052 \leq n \leq 10^5,0≤k≤10180 \leq k \leq 10^{18}),分别表示数组 aa 的大小以及允许的最大逆序对数量。
接下来一行包含 nn 个正整数,以单个空格分隔:a1, a2, …, ana_1,\ a_2,\ \dots,\ a_n(1≤ai≤1091 \leq a_i \leq 10^9)—— 数组 aa 的元素。

请注意,在 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测评打分。不知道怎么写?

首页