結果
問題 | No.600 かい文回 |
ユーザー |
|
提出日時 | 2017-11-24 23:34:56 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 4,243 bytes |
コンパイル時間 | 2,034 ms |
コンパイル使用メモリ | 78,120 KB |
実行使用メモリ | 40,956 KB |
最終ジャッジ日時 | 2024-11-27 08:27:54 |
合計ジャッジ時間 | 5,285 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 WA * 2 |
ソースコード
import java.io.OutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.io.IOException;import java.io.BufferedReader;import java.io.Reader;import java.io.InputStreamReader;import java.io.InputStream;/*** Built using CHelper plug-in* Actual solution is at the top*/public class Main {public static void main(String[] args) {InputStream inputStream = System.in;OutputStream outputStream = System.out;MyInput in = new MyInput(inputStream);PrintWriter out = new PrintWriter(outputStream);TaskD solver = new TaskD();solver.solve(1, in, out);out.close();}static class TaskD {public void solve(int testNumber, MyInput in, PrintWriter out) {int n = in.nextInt();if (n == 1) {out.println("a");return;}String ans = rec(n, 'a');StringBuilder sb = new StringBuilder(ans);sb.reverse();out.println(ans + sb.toString());}String rec(int idx, char c) {if (idx == 2) {return c + "";}if (idx == 3) {return c + "" + (char) (c + 1);}if (idx % 2 == 1) {String s = rec(idx / 2, (char) (c + 1));return c + "" + s.charAt(0) + s;} else {String s = rec(idx / 2, c);return s.charAt(0) + s;}}}static class MyInput {private final BufferedReader in;private static int pos;private static int readLen;private static final char[] buffer = new char[1024 * 8];private static char[] str = new char[500 * 8 * 2];private static boolean[] isDigit = new boolean[256];private static boolean[] isSpace = new boolean[256];private static boolean[] isLineSep = new boolean[256];static {for (int i = 0; i < 10; i++) {isDigit['0' + i] = true;}isDigit['-'] = true;isSpace[' '] = isSpace['\r'] = isSpace['\n'] = isSpace['\t'] = true;isLineSep['\r'] = isLineSep['\n'] = true;}public MyInput(InputStream is) {in = new BufferedReader(new InputStreamReader(is));}public int read() {if (pos >= readLen) {pos = 0;try {readLen = in.read(buffer);} catch (IOException e) {throw new RuntimeException();}if (readLen <= 0) {throw new MyInput.EndOfFileRuntimeException();}}return buffer[pos++];}public int nextInt() {int len = 0;str[len++] = nextChar();len = reads(len, isSpace);int i = 0;int ret = 0;if (str[0] == '-') {i = 1;}for (; i < len; i++) ret = ret * 10 + str[i] - '0';if (str[0] == '-') {ret = -ret;}return ret;}public char nextChar() {while (true) {final int c = read();if (!isSpace[c]) {return (char) c;}}}int reads(int len, boolean[] accept) {try {while (true) {final int c = read();if (accept[c]) {break;}if (str.length == len) {char[] rep = new char[str.length * 3 / 2];System.arraycopy(str, 0, rep, 0, str.length);str = rep;}str[len++] = (char) c;}} catch (MyInput.EndOfFileRuntimeException e) {}return len;}static class EndOfFileRuntimeException extends RuntimeException {}}}