結果
問題 | No.822 Bitwise AND |
ユーザー | mikit |
提出日時 | 2019-04-26 22:26:19 |
言語 | Java21 (openjdk 21) |
結果 |
WA
|
実行時間 | - |
コード長 | 4,870 bytes |
コンパイル時間 | 2,900 ms |
コンパイル使用メモリ | 77,524 KB |
実行使用メモリ | 52,168 KB |
最終ジャッジ日時 | 2024-11-25 05:05:03 |
合計ジャッジ時間 | 3,500 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | WA | - |
testcase_01 | AC | 49 ms
50,308 KB |
testcase_02 | AC | 50 ms
49,820 KB |
testcase_03 | AC | 49 ms
49,756 KB |
testcase_04 | WA | - |
testcase_05 | AC | 50 ms
50,280 KB |
testcase_06 | WA | - |
testcase_07 | WA | - |
testcase_08 | AC | 51 ms
50,348 KB |
testcase_09 | AC | 49 ms
50,224 KB |
testcase_10 | WA | - |
testcase_11 | AC | 50 ms
50,252 KB |
testcase_12 | AC | 50 ms
50,044 KB |
testcase_13 | RE | - |
testcase_14 | AC | 51 ms
50,408 KB |
testcase_15 | AC | 48 ms
50,552 KB |
testcase_16 | AC | 49 ms
50,024 KB |
ソースコード
import java.io.OutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.UncheckedIOException; import java.nio.charset.Charset; import java.util.StringTokenizer; import java.io.Writer; import java.io.OutputStreamWriter; import java.io.BufferedReader; import java.io.InputStream; /** * Built using CHelper plug-in * Actual solution is at the top * * @author mikit */ public class Main { public static void main(String[] args) { InputStream inputStream = System.in; OutputStream outputStream = System.out; LightScanner in = new LightScanner(inputStream); LightWriter out = new LightWriter(outputStream); BitwiseAnd solver = new BitwiseAnd(); solver.solve(1, in, out); out.close(); } static class BitwiseAnd { public void solve(int testNumber, LightScanner in, LightWriter out) { // out.setBoolLabel(LightWriter.BoolLabel.YES_NO_FIRST_UP); int n = in.ints(), k = in.ints(); if ((n == 0 && k > 0) || (n != 0 && BitMath.msb(n) < BitMath.msb(k))) { out.ans("INF").ln(); return; } long ans = 0; for (int i = 0; i <= k; i++) { for (int j = 0; j <= i; j++) { if ((n & i) == 0 && (n & j) == 0 && (i & j) == 0) { ans++; } } } out.ans(ans).ln(); } } static class LightWriter implements AutoCloseable { private final Writer out; private boolean autoflush = false; private boolean breaked = true; public LightWriter(Writer out) { this.out = out; } public LightWriter(OutputStream out) { this(new BufferedWriter(new OutputStreamWriter(out, Charset.defaultCharset()))); } public LightWriter print(char c) { try { out.write(c); breaked = false; } catch (IOException ex) { throw new UncheckedIOException(ex); } return this; } public LightWriter print(String s) { try { out.write(s, 0, s.length()); breaked = false; } catch (IOException ex) { throw new UncheckedIOException(ex); } return this; } public LightWriter ans(String s) { if (!breaked) { print(' '); } return print(s); } public LightWriter ans(long l) { return ans(Long.toString(l)); } public LightWriter ln() { print(System.lineSeparator()); breaked = true; if (autoflush) { try { out.flush(); } catch (IOException ex) { throw new UncheckedIOException(ex); } } return this; } public void close() { try { out.close(); } catch (IOException ex) { throw new UncheckedIOException(ex); } } } static class LightScanner { private BufferedReader reader = null; private StringTokenizer tokenizer = null; public LightScanner(InputStream in) { reader = new BufferedReader(new InputStreamReader(in)); } public String string() { if (tokenizer == null || !tokenizer.hasMoreTokens()) { try { tokenizer = new StringTokenizer(reader.readLine()); } catch (IOException e) { throw new UncheckedIOException(e); } } return tokenizer.nextToken(); } public int ints() { return Integer.parseInt(string()); } } static final class BitMath { private BitMath() { } public static int count(int v) { v = (v & 0x55555555) + ((v >> 1) & 0x55555555); v = (v & 0x33333333) + ((v >> 2) & 0x33333333); v = (v & 0x0f0f0f0f) + ((v >> 4) & 0x0f0f0f0f); v = (v & 0x00ff00ff) + ((v >> 8) & 0x00ff00ff); v = (v & 0x0000ffff) + ((v >> 16) & 0x0000ffff); return v; } public static int msb(int v) { if (v == 0) { throw new IllegalArgumentException("Bit not found"); } v |= (v >> 1); v |= (v >> 2); v |= (v >> 4); v |= (v >> 8); v |= (v >> 16); return count(v) - 1; } } }