結果

問題 No.648  お や す み 
ユーザー tenten
提出日時 2020-09-04 17:25:52
言語 Java
(openjdk 23)
結果
AC  
実行時間 122 ms / 2,000 ms
コード長 618 bytes
コンパイル時間 1,995 ms
コンパイル使用メモリ 74,560 KB
実行使用メモリ 54,376 KB
最終ジャッジ日時 2024-11-26 07:41:01
合計ジャッジ時間 13,898 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 84
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.*;

public class Main {
    static final long MAX = (long)Math.sqrt(Long.MAX_VALUE);
	public static void main (String[] args) {
    	Scanner sc = new Scanner(System.in);
    	long n = sc.nextLong() * 2;
    	long left = 0;
    	long right = MAX;
    	while (right - left > 1) {
    	    long m = (left + right) / 2;
    	    if (m * (m + 1) <= n) {
    	        left = m;
    	    } else {
    	        right = m;
    	    }
    	}
    	if (left * (left + 1) == n) {
    	    System.out.println("YES");
    	    System.out.println(left);
    	} else {
    	    System.out.println("NO");
    	}
    }
}
0