Age of the Grand Wizard

2 secs 1024 MB
KuonAyano's icon KuonAyano

問題

サンプル2(及び他テストケース)の不備をご指摘いただき真にありがとうございます。ご指摘の通り、ケースに問題があったため再度検証を行い正しい入出力とソースコードに入れ替えました。

ドラコ君はお師匠様である大魔導士エラスムスの年齢が知りたいので、お師匠様の年齢が「AiAi以上BiBi未満」であるかNN回質問しました。    お師匠様はi番目の質問に対してCi=0Ci=0の時に「いいえ」、Ci=1Ci=1の時に「はい」と答えました。  

1iN1≦i≦Nとなるiiすべてに対して、「ii番目の答えだけが嘘で他がすべて本当なら有りうる年齢の数」を答えてください。
なお、お師匠様の実際の年齢は00以上10610^6未満とします。

制約

1N1031≦N≦10^3 (質問は最大1000個)
0Ai<Bi1060≦Ai<Bi≦10^6
Ci=0Ci=0又はCi=1Ci=1
・お師匠様の年齢は0歳以上、10610^6歳未満

入力

一行目には整数NN(NNは質問の数)
二行目には数列A=[A1,A2,...,An]A = [A1,A2, ... , An]が与えられる
三行目には数列B=[B1,B2,...,Bn]B = [B1,B2, ... , Bn]が与えられる
四行目には数列C=[C1,C2,...,Cn]C = [C1,C2, ... , Cn]が与えられる

出力

1iN1≦i≦Nとなるiiすべてに対して、「ii番目の答えだけが嘘で他がすべて本当なら有りうる年齢の数」を答えてください。

サンプル

入力1
4
1 2 3 4
2 3 4 5
1 1 1 1
出力1
0
0
0
0

1番目の答えが嘘の場合、お師匠様の年齢は「1未満又は2以上」かつ「2以上3未満」かつ「3以上4未満」かつ「4以上5未満」となります。 このような数字は存在しないため、00と出力してください。他の1iN1≦i≦Nも同様に、答えの一つだけが嘘だとすると矛盾が生まれます。

入力2
4 
1 2 3 4
9 8 9 5
1 0 1 1
出力2
0
1
0
1

i=1i=1番目の答えだけが嘘だとすると矛盾が生まれます。i=2i=2番目の答えだけが嘘だとすると、お師匠様の年齢は「1以上9未満」かつ「2以上8未満」かつ 「3以上9未満」かつ「4以上5未満」である数字です。そのような年齢は4歳しか考えられないので、11と出力して下さい。

入力3
1 
1
2
1
出力3
999999

i=1i=1番目の答えだけが嘘だとするとお師匠様の年齢は00歳、22歳、33歳、…、999999999999歳のいずれかです。なので、999999999999と出力します。

提出


Go (1.21)