C - 入れ替え Editorial

Time Limit: 2 sec / Memory Limit: 64 MB

問題文

ここにカードが 66 枚あり、それぞれ 11 から 66 までの整数が書かれています。
最初、左から右へ 11 のカードから 66 のカードまでがソートされた状態で並んでいます。
高橋君には整数 NN が与えられます。高橋君は以下の操作を i=0i = 0,11,22, ...... ,N1N-1 に対して i=0i = 0 から 順番に行います。
  • 左から (i(i modmod 5)+15)+1 番目にあるカードと、左から (i(i modmod 5)+25)+2 番目にあるカードの位置を入れ替える。
modmod とは、「剰余」を意味し、例えば 88 modmod 5533 であり、1515 modmod 5500 になります。

ここで実際に N=5N = 5 のときに行われる操作を例示します。

  • i=0i = 0 のとき:
  • (0(0 modmod 5)+15)+1 == 11(0(0 modmod 5)+25)+2 == 22 より、左から 11 番目のカード」と、「左から 22 番目のカード」を入れ替えます。
  • i=1i = 1 のとき:
  • i=2i = 2 のとき:
  • i=3i = 3 のとき:
  • i=4i = 4 のとき:
  • よって、N=5N=5 のとき、カードの並びは左から234561の順に並びます。
あなたは高橋君の代わりに、上記の操作が全て終わった後のカードの並びを答えてください。

入力

入力は以下の形式で標準入力から与えられる。
NN
11 行目には、高橋君に与えられた整数 N(1N109)N(1≦N≦10^9) を与える。
  • この問題には部分点が設定されている。後述する部分点の項も参照すること。

出力

操作が終わった後のカードの並びを左から順に 11 行で出力してください。
また、出力の末尾には改行を入れること。

部分点

1N501≦N≦50 を満たすテストケース全てに正解すると、100100 点満点のうち 3030 点が与えられる。


入力例 1

Copy
  1. 1
1

出力例 1

Copy
  1. 213456
213456
  • 「左から 11 番目のカード」と、「左から 22 番目のカード」を入れ替えます。

入力例 2

Copy
  1. 5
5

出力例 2

Copy
  1. 234561
234561
  • 問題文中で示した例です。

入力例 3

Copy
  1. 22
22

出力例 3

Copy
  1. 615234
615234

入力例 4

Copy
  1. 100000000
100000000

出力例 4

Copy
  1. 345612
345612
  • N>50N>50 なので、部分点ではなく、満点解答のための入力になります。


2025-04-03 (Thu)
09:13:06 +00:00