白駿[0989号]:数列3


質問する


N個の数字が与えられた場合、昇順で並べ替えられたプログラムを作成します.

入力


第1行は、数の個数N(1≦N≦1000000)を与える.2行目からN行に付与する.この数は10000以下の自然数です.

しゅつりょく


1行目からN行目まで昇順に並べた結果、1行ずつ出力されます.

入力例1


10
5
2
3
1
4
2
3
5
1
7

サンプル出力1


1
1
2
2
3
3
4
5
5
7

注意事項



解法


以前のソートの問題とは異なり、メモリには大きな制限があります.したがって、既存と同じ方法で解凍すると、メモリオーバーフローによりコミットエラーが発生します.
  • コミットコード
  • import sys
    N = int(input())
    check_list = [0] * 10001
    for _ in range(N):
        input_num = int(sys.stdin.readline())
        check_list[input_num] = check_list[input_num] + 1 # 해당 인덱스에 1씩 추가
    print(check_list)
    
    for i in range(10001):
        if check_list[i] != 0: # 1 이상인 인덱스 출력
            for _ in range(check_list[i]):
                print(i) # 2 이상이라면 해당 값만큼 반복하여 출력
  • sysソート可能な数値を入力します.inputでメモリがオーバーフローします.
  • check_listarrayは、メモリオーバーフローを防止するために予め宣言されている.