結果
| 問題 | 
                            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)