A問題
1 2 |
n = int(input()) print(2*n) |
C問題
方針
[1,2,3,4,5,6]のリストがある中で、n÷5の剰余+1番目の要素と、n÷5の剰余+2の要素を入れ替えるという操作を繰り返す問題です。
ですが、入力例3のような大きな数の場合、素直に入れ替えを行っていると制限時間内に操作が終わらないため少し工夫が必要です。
1から順番に数字を大きくして実行していくとわかりますが、数字の並びは6×5の全部で30パターンしかありません。
31番目になるともとの[1,2,3,4,5,6]に戻ります。
そのため、nを30で割った余りに対して入れ替えのための割り算と入れ替えの操作を行うことで、繰り返しの回数を減らすことができます。
解答
1 2 3 4 5 6 7 8 9 |
n = int(input()) list = [1,2,3,4,5,6] n = n%30 for i in range(n): mod=i%5 list[mod],list[mod+1]=list[mod+1],list[mod] print(*list,sep='') |
コメント