BOJ 14723離散数学課題


https://www.acmicpc.net/problem/14723
1秒、256 MBメモリ
input :
  • N(1 ≤ N ≤ 1,000)
  • output :
  • 分子a,分bは空白,a,bは出力
  • である.
    確認に時間がかかりすぎた.

    次の解

  • 入力値の範囲
  • ルール?フルナビゲーション
  • 入力値の範囲が小さいと.
    制作が終わった場合も考えます.
    この問題では、直接計算することもできます.合2の有理数1個3人有理数2個4人有理数3個に追加します.
    そこでcnt,prevをフィルタリングする.
    その後,prev−nのように1を加えて分子を求めることができ,逆も同様である.
    不思議なことに、分子の開始値は和に等しい.
    import sys
    
    n = int(sys.stdin.readline())
    cnt, prev = 0, 0
    
    for i in range(1, 1000):
        prev = cnt
        cnt += i
        if cnt >= n:
            break
    
    up, down = i, 1
    for i in range(n - prev - 1):
        up -= 1
        down += 1
    
    print(up, down)