3287: 决斗(轮盘赌)

内存限制:128 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:57 通过:12

题目描述

原题链接 http://codeforces.com/problemset/problem/103/C   

       多多和果果准备决斗。多多找到一把左轮手枪,它有一个由n个弹孔组成的旋转圆筒,能够精确地容纳k颗子弹,现在男孩们有机会一劳永逸地解决这个问题。
     多多想从具有n个子弹插槽中选择任意k个弹槽,并将子弹放进去。多多旋转左轮手枪的圆柱体,n个子弹槽位移都是等概率的。比赛开始,两个男孩轮流上场。 
       多多先开始:他把枪对准自己的头开枪。如果扳机前没有子弹,枪管会移动一个位置,武器会交给果果,让他做出同样的动作。游戏继续进行,直到有人中枪,幸存者就是赢家。

       多多不想输,所以他必须为子弹选择弹孔,以尽量减少其自身的损失。在所有可能的变体中,他想选择字典最小的一个,其中一个空的插槽在字典上比一个有子弹的插槽小。 确切地说,拥有n个子弹槽的圆柱体可以只装k颗子弹,这n个子弹可以表示为n个字符的字符串。其中有k个是“X”(有子弹),其他的是“."(没有子弹)。
如果一枪没有造成任何人死亡,子弹移动,那么字符串就会向左移动。所以第一个字符变成最后一个,第二个字符变成第一个,依此类推。求让自己存活几率最大的装弹方式
下字典序最小的那一种字符串。  也就是说如果两个序列概率一样那么尽量选X靠后的,最后有p个询问,当询问到 i 输出 i 的状态  Xi  表示有子弹,反之没有 。



输入格式

第一行输入n、k、p,分别表示手枪能装子弹的数量、子弹数量和查询数。(1 ≤ n ≤ 1E18, 0 ≤ k ≤ n, 1 ≤ p ≤ 1000)
接下来p行代表p个询问:
输入一个xi,代表查询的有子弹还是无子弹 (1 ≤ xi ≤ n

输出格式

对于每一个询问,输出.或者X

输入样例 复制

3 1 3
1
2
3

输出样例 复制

..X

分类标签