結果

問題 No.688 E869120 and Constructing Array 2
ユーザー Tsukasa_TypeTsukasa_Type
提出日時 2018-05-18 23:08:19
言語 Java
(openjdk 23)
結果
WA  
(最新)
AC  
(最初)
実行時間 -
コード長 1,172 bytes
コンパイル時間 2,468 ms
コンパイル使用メモリ 80,636 KB
実行使用メモリ 41,468 KB
最終ジャッジ日時 2024-07-07 13:34:28
合計ジャッジ時間 7,002 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 3
other WA * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

import static java.lang.System.*;
import java.util.*;

public class Main {
	static Scanner sc = new Scanner(System.in);
	public static void main(String[] args) {
		Map<Integer,Integer> map = new HashMap<>();
		for (int i=2; i<=30; i++) {
			map.put(i*(i-1)/2, i);
		}
		
		Set<Long> set = new HashSet<>();
		for (int i=1; i<=28; i++) {
			set.add((long)Math.pow(2,i));
		}
		
		
		
		List<Integer> ans = new ArrayList<>();

		long n = sc.nextLong();
		if (n == 0) out.println(1);
		if (map.containsKey((int)n)) {
			for (int i=0; i<map.get((int)n); i++) {
				ans.add(1);
			}
			printList(ans);
		}
		else {
			for (Map.Entry<Integer,Integer> e: map.entrySet()) {
				int k = e.getKey();
				long d = n/k;
				if (set.contains(d)) {
					
					for (int i=0; i<map.get(k); i++) {
						ans.add(1);
					}
					while (d%2 == 0) {
						d /= 2;
						ans.add(0);
					}
					printList(ans);
					
					break;
				}
			}
		}
	}

	static void printList(List<Integer> list) {
		for (int i=0; i<list.size(); i++) {
			out.print((i==0?"":" ")+list.get(i));
		}
	}

	static boolean is2n(long l) {
		while (l%2 == 0) {
			l /= 2;
		}
		if (l == 1) return true;
		return false;
	}
}
0