結果
| 問題 |
No.1072 A Nice XOR Pair
|
| コンテスト | |
| ユーザー |
6soukiti29
|
| 提出日時 | 2020-06-09 02:02:24 |
| 言語 | Nim (2.2.0) |
| 結果 |
CE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 613 bytes |
| コンパイル時間 | 1,232 ms |
| コンパイル使用メモリ | 64,384 KB |
| 最終ジャッジ日時 | 2024-12-29 07:26:09 |
| 合計ジャッジ時間 | 2,015 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
/home/judge/data/code/Main.nim(9, 30) Error: type mismatch: got 'seq[BiggestInt]' for 'map(split(readLine(stdin), {' ', '\t', '\v', '\r', '\n', '\f'}, -1),
parseBiggestInt)' but expected 'tuple'
ソースコード
import sequtils,strutils,algorithm
var
N, X : int64
A : seq[int64]
B : seq[int64]
ans : int64
f :array[200010, int64]
(N, X) = stdin.readline.split.map(parseBiggestInt)
for i in 1..N:
A.add(stdin.readline.parseBiggestInt)
A.sort(cmp)
for i,a in A:
if B.len == 0 or B[^1] != a:
B.add(a)
f[B.high] += 1
for i,a in B:
if X == 0:
ans += f[i] * (f[i] - 1) div 2
continue
var k : int64 = (X xor a)
var j = B.lowerbound(k)
if j > B.high or B[j] != k:
continue
ans += f[j] * f[i]
if X > 0:
echo (ans div 2)
else:
echo ans
6soukiti29