結果
| 問題 | No.648 お や す み |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-02-19 15:20:21 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,270 bytes |
| 記録 | |
| コンパイル時間 | 125 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-07-07 19:41:26 |
| 合計ジャッジ時間 | 4,394 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 83 WA * 1 |
ソースコード
# -*- coding: utf-8 -*-
import math
def simple(n, N):
""" TLEします """
sum_sheep = 0
for i in range(1,N+1):
sum_sheep += i
if sum_sheep < n:
continue
elif sum_sheep == n:
print("YES")
print(i)
exit()
else:
print("NO")
exit()
def sum_one_to_n(n, N):
""" 1からnまでの和 = n*(n+1)/2 を求める
veryverylarge1.txtでTLE
"""
for i in range(1, N+1):
sum_sheep = i*(i+1)/2
if sum_sheep < n:
continue
elif sum_sheep == n:
print("YES")
print(i)
exit()
else:
print("NO")
exit()
def _formula(n):
""" 2次方程式の解
99_corner3.txtでWAになる(桁落ちが原因)
"""
return (-1 + math.sqrt(1+8*n))/2 # ※式
def _formula2(n):
""" 2次方程式の解
桁落ちに対処するため、quadratic_formulaの※式を分子の有理化したもの
"""
return 4*n/(1+math.sqrt(1+8*n))
def quadratic_formula(n):
""" 2次方程式の解を求める方法
1からnまでの和の公式を変形すると、
i**2 + i - 2*n = 0
このときのiを求めて、iが正の整数ならば"YES"である
"""
i = _formula2(n)
if i != math.floor(i):
print("NO")
exit()
print("YES")
print(int(i))
exit()
if __name__ == "__main__":
n = int(input())
N = 2*(10**18)
quadratic_formula(n)