結果
問題 | No.3061 uxs hxixtya pyuyn ixc hyixa kxuyn |
ユーザー | Yu_212 |
提出日時 | 2022-04-01 21:10:12 |
言語 | Java21 (openjdk 21) |
結果 |
WA
|
実行時間 | - |
コード長 | 6,839 bytes |
コンパイル時間 | 2,768 ms |
コンパイル使用メモリ | 98,340 KB |
実行使用メモリ | 45,088 KB |
最終ジャッジ日時 | 2024-11-20 07:44:54 |
合計ジャッジ時間 | 15,875 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | WA | - |
testcase_01 | AC | 1,834 ms
44,264 KB |
testcase_02 | TLE | - |
testcase_03 | AC | 759 ms
44,424 KB |
testcase_04 | AC | 125 ms
44,792 KB |
testcase_05 | AC | 498 ms
44,428 KB |
testcase_06 | AC | 495 ms
44,532 KB |
testcase_07 | WA | - |
testcase_08 | WA | - |
testcase_09 | AC | 122 ms
44,100 KB |
testcase_10 | AC | 123 ms
44,608 KB |
testcase_11 | AC | 117 ms
43,616 KB |
testcase_12 | AC | 116 ms
44,184 KB |
testcase_13 | WA | - |
testcase_14 | AC | 126 ms
44,520 KB |
testcase_15 | WA | - |
testcase_16 | AC | 123 ms
44,532 KB |
testcase_17 | AC | 119 ms
44,560 KB |
testcase_18 | AC | 120 ms
44,532 KB |
testcase_19 | AC | 108 ms
43,244 KB |
testcase_20 | AC | 1,247 ms
44,408 KB |
testcase_21 | AC | 116 ms
44,044 KB |
testcase_22 | TLE | - |
testcase_23 | AC | 130 ms
44,608 KB |
ソースコード
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.*; import java.util.function.IntUnaryOperator; import java.util.function.LongUnaryOperator; import java.util.stream.Collectors; public class Main { static In in = new In(); static Out out = new Out(); static final long inf = 0x1fffffffffffffffL; static final int iinf = 0x3fffffff; static final double eps = 1e-9; static long mod = 1000000007; void solve() { Scanner scanner = new Scanner(System.in); if (scanner.hasNextLine()) { String s = scanner.nextLine(); int n = s.length(); out.println(f(s) || f(" " + s) ? "Yes" : "NO"); } else { out.println("Yes"); } } boolean f(String s) { int n = s.length(); boolean[] remove = new boolean[26]; for (int i = 1; i < n; i += 2) { if (s.charAt(i) != ' ') { remove[s.charAt(i) - 'a'] = true; s = s.replace(s.charAt(i), ' '); } } for (int i = 0; i < 1 << 26; i++) { boolean ok = true; for (int j = 0; j < 26; j++) { if (remove[j] && ((i >> j) & 1) == 1) { ok = false; break; } } if (!ok) { continue; } int first = -1; int last = -1; for (int j = 0; j < n; j += 2) { boolean use = s.charAt(j) != ' ' && ((i >> (s.charAt(j) - 'a')) & 1) == 1; if (!use) { continue; } if (first == -1) { first = j; } else if (j - last > 2) { ok = false; break; } last = j; } ok &= first != -1; if (ok) { return true; } } return false; } public static void main(String... args) { new Main().solve(); out.flush(); } } class In { private final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in), 0x10000); private StringTokenizer tokenizer; String next() { try { while (tokenizer == null || !tokenizer.hasMoreTokens()) { tokenizer = new StringTokenizer(reader.readLine()); } } catch (IOException ignored) { } return tokenizer.nextToken(); } int nextInt() { return Integer.parseInt(next()); } long nextLong() { return Long.parseLong(next()); } double nextDouble() { return Double.parseDouble(next()); } char[] nextCharArray() { return next().toCharArray(); } String[] nextStringArray(int n) { String[] s = new String[n]; for (int i = 0; i < n; i++) { s[i] = next(); } return s; } char[][] nextCharGrid(int n, int m) { char[][] a = new char[n][m]; for (int i = 0; i < n; i++) { a[i] = next().toCharArray(); } return a; } int[] nextIntArray(int n) { int[] a = new int[n]; for (int i = 0; i < n; i++) { a[i] = nextInt(); } return a; } int[] nextIntArray(int n, IntUnaryOperator op) { int[] a = new int[n]; for (int i = 0; i < n; i++) { a[i] = op.applyAsInt(nextInt()); } return a; } int[][] nextIntMatrix(int h, int w) { int[][] a = new int[h][w]; for (int i = 0; i < h; i++) { a[i] = nextIntArray(w); } return a; } long[] nextLongArray(int n) { long[] a = new long[n]; for (int i = 0; i < n; i++) { a[i] = nextLong(); } return a; } long[] nextLongArray(int n, LongUnaryOperator op) { long[] a = new long[n]; for (int i = 0; i < n; i++) { a[i] = op.applyAsLong(nextLong()); } return a; } long[][] nextLongMatrix(int h, int w) { long[][] a = new long[h][w]; for (int i = 0; i < h; i++) { a[i] = nextLongArray(w); } return a; } List<List<Integer>> nextEdges(int n, int m, boolean directed) { List<List<Integer>> res = new ArrayList<>(); for (int i = 0; i < n; i++) { res.add(new ArrayList<>()); } for (int i = 0; i < m; i++) { int u = nextInt() - 1; int v = nextInt() - 1; res.get(u).add(v); if (!directed) { res.get(v).add(u); } } return res; } } class Out { private final PrintWriter out = new PrintWriter(System.out); boolean autoFlush = false; void println(Object... args) { if (args == null || args.getClass() != Object[].class) { args = new Object[] {args}; } out.println(Arrays.stream(args).map(obj -> { Class<?> clazz = obj == null ? null : obj.getClass(); return clazz == Double.class ? String.format("%.10f", obj) : clazz == byte[].class ? Arrays.toString((byte[])obj) : clazz == short[].class ? Arrays.toString((short[])obj) : clazz == int[].class ? Arrays.toString((int[])obj) : clazz == long[].class ? Arrays.toString((long[])obj) : clazz == char[].class ? Arrays.toString((char[])obj) : clazz == float[].class ? Arrays.toString((float[])obj) : clazz == double[].class ? Arrays.toString((double[])obj) : clazz == boolean[].class ? Arrays.toString((boolean[])obj) : obj instanceof Object[] ? Arrays.deepToString((Object[])obj) : String.valueOf(obj); }).collect(Collectors.joining(" "))); if (autoFlush) { out.flush(); } } void println(char[] s) { out.println(String.valueOf(s)); if (autoFlush) { out.flush(); } } void println(int[] a) { StringJoiner joiner = new StringJoiner(" "); for (int i : a) { joiner.add(Integer.toString(i)); } out.println(joiner); if (autoFlush) { out.flush(); } } void println(long[] a) { StringJoiner joiner = new StringJoiner(" "); for (long i : a) { joiner.add(Long.toString(i)); } out.println(joiner); if (autoFlush) { out.flush(); } } void flush() { out.flush(); } }