問題一覧 > 通常問題

No.1245 ANDORゲーム(calc)

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 142
作問者 : 👑 tute7627 / テスター : tempura_pp
9 ProblemId : 4335 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2020-10-02 18:41:17

問題文

あなたは以下のようなゲームを行うことにしました。

  • ゲームの開始時にあなたは非負整数 T を持っており、スコアは 0 である。
  • 長さ N の数列 A を用いて以下の操作を N 回繰り返す。
    • i 回目の操作では、現在持っている整数を X として、X を以下のどちらかに変化させる。
      • XAi の bitwise and
      • XAi の bitwise or
    • 各操作後に、スコアが |(X)(X)| 増加する。
あなたはある操作手順 S について、以下のクエリを Q 個処理することにしました。
  • i 番目のクエリでは、初期値 T=ti であり、操作手順 S に従って操作を行った時の N 回の操作後のスコアを求める。
それぞれのクエリの答えを求めてください。

入力

N Q
A1 A2AN
S
t1 t2tQ

  • 1N,Q105
  • 0Ai109
  • S01からなる長さ N の文字列である。
  • Si 文字目が0である場合、i 回目の操作で bitwise and を選択する。
    Si 文字目が1である場合、i 回目の操作で bitwise or を選択する。
  • 0ti109

出力

i 行目には i 番目のクエリの答えを出力してください。 最後に改行してください。

サンプル

サンプル1
入力
2 2
2 1
01
1 2
出力
2
1

bitwise and, bitwise or の順で選択します。
・初期値が 1 の場合
1 回目の操作では、持っている整数は 10 となり、スコアは 1 になります。
2 回目の操作では、持っている整数は 01 となり、スコアは 2 になります。
・初期値が 2 の場合
1 回目の操作では、持っている整数は 22 となり、スコアは 0 のままです。
2 回目の操作では、持っている整数は 23 となり、スコアは 1 になります。

サンプル2
入力
4 3
0 0 0 0
1111
1 2 3
出力
0
0
0

初期値がどの値でも結果は同じです。

サンプル3
入力
6 7
8 24 31 25 8 25
010100
18 28 9 5 31 0 21
出力
60
54
35
47
57
42
63

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。