#P13636. [NWRRC 2021] Imprecise Permutation Sort

[NWRRC 2021] Imprecise Permutation Sort

题目描述

This is an interactive problem.

A permutation a[1],a[2],,a[n]a[1], a[2], \ldots, a[n] of integers from 11 to nn is hidden from you.

Your task is to sort it in ascending order by comparing and swapping pairs of elements. This problem could be pretty easy, but the jury member responsible for the problem was too concentrated on floating-point arithmetic in problems G and J and implemented an "imprecise" comparator:

  • If a[i]a[j]max(a[i],a[j])0.01\frac{|a[i] - a[j]|}{max(a[i], a[j])} \leq 0.01, then return 00;
  • Otherwise, if a[i]<a[j]a[i] < a[j], then return 1-1;
  • Otherwise, return 11.

Your program can make queries to compare any two elements with this comparator, or to swap any two elements. After each swap, it will be told whether the permutation became sorted.

Sort a permutation of size up to 1638416\,384 using no more than 300000300\,000 queries.

Interaction

Receive an integer nn from the jury's program — the size of the permutation (1n163841 \leq n \leq 16\,384). Then print queries and receive responses from the jury's program. After each query the output should be flushed and then a single integer should be read — the response to that query.

Comparison queries have a format C i j\tt{C\ i\ j}, and swap queries have a format S i j\tt{S\ i\ j}, where ii and jj are indices of two elements (1i,jn1 \leq i, j \leq n). Making queries with i=ji=j is allowed.

The response to a comparison query is:

  • 00 if a[i]a[i] "approximately equals" a[j]a[j],
  • 1-1 if a[i]<a[j]a[i] < a[j],
  • 11 if a[i]>a[j]a[i] > a[j].

A swap query swaps values in a[i]a[i] and a[j]a[j], and the response to a swap query is:

  • 11 if after this swap the array became sorted in ascending order,
  • 00 otherwise.

Your program should exit as soon as it receives 11 as a response to a swap query.

The program should make at least one swap query. For example, if the hidden permutation is already sorted, it can make a query S 1 1\tt{S\ 1\ 1}, receive a 11, and exit.

The interactor is not adaptive. The initial permutation is chosen by the jury's program in advance, before you make your first query.

4

-1

-1

1

1

C 1 2

C 2 3

C 3 4

S 3 4
1

1

S 1 1