Submit | All submissions | Best solutions | Back to list |
ILKQUERYIII - I LOVE Kd-TREES III |
The "I-Love-Kd-trees'' annual con is receiving too many applicants so they decided to complicate a bit the task used to select participants. (They realized some people were using other data structures to solve their problems, so they designed this problem, almost only solvable with Kd-trees).
You are given a list of N numbers and Q queries. Each query can be of two types.
- Type-0 queries (marked with 0 in the input), consist of three integers: i, l and k ; let d be the k-th smallest element until the index i (i.e. if the first i +1 elements were sorted in non-descending way, d would be the element at index k - 1). Then, the answer to each query is the index of the l-th occurrence of d in the array. If there's no such index, the answer is -1.
- Type-1 queries (marked with 1 in the input) are contiguous-swap update-queries, and consists of a single integer i. When a type-1 query is executed the elements at index i and i +1 in the list must be swapped.
You have to consider that all indexes are counted starting with 0.
Input
Input consists of one test case.
The first line contains two integers, N (1 ≤ N ≤ 106) and Q (1 ≤ Q ≤ 105).
The next line contains N possible distinct integers ai (-109 ≤ ai ≤ 109).
Then Q lines follow. Each of them starts with an integer which can be 0 or 1, denoting the type of the query. If it’s 0, then three integers i, l and k follow (0 ≤ i < N, 1 ≤ k ≤ i+1, 1 ≤ l ≤ N).
If it’s 1, then an integer i follows, meaning that you have to swap the elements at indexes i and i+1 (0 ≤ i ≤ N-1).
Output
For each query of type-0 (in the same order as the input) output a single line with the answer to that query.
Example
Input: 10 6
2 3 1 1 2 7 9 1 2 6
0 2 3 2
1 1
1 2
0 2 3 2
1 0
0 0 2 1
Output: 8
7
2
Added by: | BerSub |
Date: | 2016-03-25 |
Time limit: | 0.400s-1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 GOSU JS-MONKEY |
hide comments
2021-05-13 21:25:22
Ignoring type-1 queries with i=n-1 results in AC. Not ignoring results in runtime error. |
|
2019-05-07 23:41:50 DK...
@BerSub what we suppose to do with type 1 queries in which i=n-1? |
|
2017-09-08 16:28:06 Ankit Sultana
There are test cases with i = n - 1 for Type 1 Queries, which doesn't make any sense. |
|
2016-12-14 07:22:55
As there is a problem with the input, for the 1-type queries there cases I = N - 1. |
|
2016-08-17 11:08:09 Rishav Goyal
will it pass O(Q(logn)^2) ? |
|
2016-03-25 22:49:10
Ready ! :-P |
|
2016-03-25 15:49:03 [Rampage] Blue.Mary
Where's the example Input/Output? |