結果
| 問題 |
No.1896 Arrays and XOR Procedure 2
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-04-14 12:15:48 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 611 ms / 2,000 ms |
| コード長 | 696 bytes |
| コンパイル時間 | 94 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 44,984 KB |
| 最終ジャッジ日時 | 2024-12-24 06:22:38 |
| 合計ジャッジ時間 | 20,587 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 |
ソースコード
def check(n,a,b,ans):
for t,p,q in ans:
if t==1:
a[p]=a[p]^b[q]
else:
b[q]=a[p]^b[q]
print(a)
print(b)
return max(a)<min(b)
def solv(n,a,b):
import numpy as np
ans=[]
q=np.argmax(a)
bit=1 # a[q]の最上位bit
while bit<=a[q]:bit<<=1
bit>>=1
for i in range(n):
if bit^b[i]>b[i]:
ans.append([2,q,i])
q=np.argmin(b)
for i in range(n):
if bit^a[i]<a[i]:
ans.append([1,i,q])
return ans
n=int(input())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
ans=solv(n,a,b)
#print(check(n,a,b,ans))
print(len(ans))
for t,p,q in ans:
print(t,p+1,q+1)