CF103C.Russian Roulette

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

After all the events in Orlando we all know, Sasha and Roma decided to find out who is still the team's biggest loser. Thankfully, Masha found somewhere a revolver with a rotating cylinder of nn bullet slots able to contain exactly kk bullets, now the boys have a chance to resolve the problem once and for all.

Sasha selects any kk out of nn slots he wishes and puts bullets there. Roma spins the cylinder so that every of nn possible cylinder's shifts is equiprobable. Then the game starts, the players take turns, Sasha starts: he puts the gun to his head and shoots. If there was no bullet in front of the trigger, the cylinder shifts by one position and the weapon is given to Roma for make the same move. The game continues until someone is shot, the survivor is the winner.

Sasha does not want to lose, so he must choose slots for bullets in such a way as to minimize the probability of its own loss. Of all the possible variant he wants to select the lexicographically minimal one, where an empty slot is lexicographically less than a charged one.

More formally, the cylinder of nn bullet slots able to contain kk bullets can be represented as a string of nn characters. Exactly kk of them are "X" (charged slots) and the others are "." (uncharged slots).

Let us describe the process of a shot. Suppose that the trigger is in front of the first character of the string (the first slot). If a shot doesn't kill anyone and the cylinder shifts, then the string shifts left. So the first character becomes the last one, the second character becomes the first one, and so on. But the trigger doesn't move. It will be in front of the first character of the resulting string.

Among all the strings that give the minimal probability of loss, Sasha choose the lexicographically minimal one. According to this very string, he charges the gun. You have to help Sasha to charge the gun. For that, each xix_{i} query must be answered: is there a bullet in the positions xix_{i} ?

输入格式

The first line contains three integers nn , kk and pp ( 1<=n<=1018,0<=k<=n,1<=p<=10001<=n<=10^{18},0<=k<=n,1<=p<=1000 ) — the number of slots in the cylinder, the number of bullets and the number of queries. Then follow pp lines; they are the queries. Each line contains one integer xix_{i} ( 1<=xi<=n1<=x_{i}<=n ) the number of slot to describe.

Please do not use the %lld specificator to read or write 64-bit numbers in С++. It is preferred to use cin, cout streams or the %I64d specificator.

输出格式

For each query print "." if the slot should be empty and "X" if the slot should be charged.

输入输出样例

  • 输入#1

    3 1 3
    1
    2
    3
    

    输出#1

    ..X
  • 输入#2

    6 3 6
    1
    2
    3
    4
    5
    6
    

    输出#2

    .X.X.X
  • 输入#3

    5 2 5
    1
    2
    3
    4
    5
    

    输出#3

    ...XX

说明/提示

The lexicographical comparison of is performed by the < operator in modern programming languages. The aa string is lexicographically less that the bb string, if there exists such ii ( 1<=i<=n1<=i<=n ), that a_{i}<b_{i} , and for any jj ( 1<=j<i ) aj=bja_{j}=b_{j} .

首页