問題一覧 > 通常問題

No.670 log は定数

レベル : / 実行時間制限 : 1ケース 4.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 62
作問者 : yosupot / テスター : sigma425
2 ProblemId : 1886 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2018-03-24 00:00:35

問題文


長さ N の数列 aiQ 個のクエリが与えられます。それぞれのクエリは以下のようなクエリです。

  • x が与えられるので、ai の要素のうち x より小さいものの個数を求めてください

なお、数列、クエリの個数は入力で与えられますが、その内容は共に乱数生成器により生成されます。

また、出力は i(i=1,2,...,Q) 個目のクエリの結果を ri として、
ri×(i1) をすべてxorしたものを出力してください。

つまり、si=ri×(i1) として、s1s2...sQ を出力して下さい。

なお、クエリの結果をまとめているのは、出力にかかる時間を減らすためです(想定解では、すべてのクエリに対する答えを得ています)

C++、Java、D、3つの言語について、この問題の愚直解(非常に長い時間実行する必要があるが、正しい答えを出力するコード)を載せるので、入力の生成方法はこれを参考にしてください。なお、この3つの言語については時間制限に間に合う想定解があります。(C++: 1461ms, Java: 3627ms(は?), D:2721ms)

ソースコード

入力

N Q Seed


N=2×105
Q=5×107
1Seed109
0ai,x2311

出力

最後に改行してください。

サンプル

サンプル1
入力
3 5 100
出力
11

{ai}={574298591,668652393,1255298759}、クエリの内容は順に
1374848783,844241532,121207337,1805629405,534777954となります。

このケースは入力の制約を満たしません。

サンプル2
入力
50000 100000 1194
出力
5935406007

載せた愚直解でもこのサイズならば動きます。(数十秒かかるかもしれません)

このケースも入力の制約を満たしません。

サンプル3
入力
200000 50000000 2525
出力
4959527808339

載せた愚直解にこのケースを入れると、コンテストが終わるまでに結果が返ってくるか怪しいと思います。気を付けてください。

このケースは入力の制約を満たします。

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