Barbarian tribes 

In a lost land two primitive tribes coexist: Gareds and Kekas. Every summer solstice they meet and compete to decide which tribe will be the favorite of the gods for the rest of the year, following an old ritual:

First, a local guru chooses three numbers at random: n, m and k.
Afterwards, n Gared maids (in the positions
1, 2,..., n)
and m Keka maids (in the positions
n + 1, n + 2,..., n + m)
are placed in a circle looking inwards.
Then the guru begins to count
1, 2,..., k starting at the first Gared maid.
When the k-th maid is reached, she is immediately sacrificed to the gods.
The guru then counts again
1, 2,..., k
starting at the maid following the one just sacrificed.
Again, the k-th maid reached this way is sacrificed.
After every two sacrifices,
the second sacrificed maid is replaced by a new maid.
In order to decide the tribe of the new maid,
the guru looks at the heads of the two maids just killed
(nothing else remains of them).
If both heads are of the same tribe, the guru calls a Gared maid.
If the heads are from different tribes, the guru calls a Keka maid.
The process then begins again
(counting and sacrificing twice and replacing once)
starting to count at the maid following the new maid
just added to the circle.
Since the number of maids reduces by one after every step
(of two sacrifices and one replacement),
after n + m - 1 steps only one maid remains.

According to the tradition,
the tribe of the last maid will be the favorite of the gods.
(What the guru does to the last maid is something you don't want to know.)
Anyway, write a program such that,
given n, m and k, writes the name of the fortunate tribe.

For example, this is what happens for n = m = 3 and k = 2
(a ``G'' denotes a Gared maid and a ``K'' denotes a Keka maid;
the subindexes mark the order the maids enter the circle):

  1. Initial content of the circle: G1 G2 G3 K4 K5 K6

    Starting to count at G1.
    First sacrifice: G2.
    Second sacrifice: K4 (replaced by K7).
  2. Content of the circle: G1 G3 K7 K5 K6

    Starting to count at K5.
    First sacrifice: K6.
    Second sacrifice: G3 (replaced by K8).
  3. Content of the circle: G1 K8 K7 K5

    Starting to count at K7.
    First sacrifice: K5.
    Second sacrifice: K8 (replaced by G9).
  4. Content of the circle: G1 G9 K7

    Starting to count at K7.
    First sacrifice: G1.
    Second sacrifice: K7 (replaced by K10).
  5. Content of the circle: G9 K10

    Starting to count at G9.
    First sacrifice: K10.
    Second sacrifice: G9 (replaced by K11).
  6. Final content of the circle: K11

Input

Input consists of zero ore more test cases.
Each test case consists of a line
with three positive integers: n, m and k.
You can assume
1n + m2000 and
1k1000.
A test case with
n = m = k = 0 ends the input and must not be processed.

Output

For every test case, print either "Gared" or "Keka" as convenient.

Sample Input

3 3 2
4 2 2
0 1 7
0 0 0

Sample Output

Keka
Gared
Keka 开始以为是约瑟夫环,TLE了...郁闷半天,后来看了题解恍然大悟。自己还是得加强下思维转换。。。

题目大意:给出n,m和k,有n个G,m个K,站成一个圈,现在有个杀手每次走k步,杀掉当前位置的人,每次杀两个人之后如果这两个人都是G或都是K,就用G补上,否则就用K补上。问说最后剩一个谁。

解题思路:在每杀两个人这个地方进行考虑。无非3种情况:杀两G,多一G,杀两K,多一G,杀一G一K,多一K。

     注意,杀一G一K,多一K时,K的数目不变,所以K的人数只会以减2的方式减少。如果K一开始是奇数的话是永远减少不完的,最终肯定剩下K。如果一开始是偶数,最终减少完的必然是K,剩下G。

代码:

 #include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int main()
{
int n, m, k;
while(scanf("%d%d%d", &n, &m, &k))
{
if(!n && !m && !k) break;
if(m%) printf("Keka\n");
else printf("Gared\n");
}
return ;
}

【推理】UVa 10771 - Barbarian tribes的更多相关文章

  1. uva 10771

    思路题 K的人数只能以2减少 #include <cstdio> #include <cstdlib> #include <cmath> #include < ...

  2. UVA 11246 - K-Multiple Free set(数论推理)

    UVA 11246 - K-Multiple Free set 题目链接 题意:一个{1..n}的集合.求一个子集合.使得元素个数最多,而且不存在有两个元素x1 * k = x2,求出最多的元素个数是 ...

  3. uva 1561 - Cycle Game(推理)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=4336" style=""& ...

  4. UVA 1364 - Knights of the Round Table (获得双连接组件 + 二部图推理染色)

    尤其是不要谈了些什么,我想A这个问题! FML啊.....! 题意来自 kuangbin: 亚瑟王要在圆桌上召开骑士会议.为了不引发骑士之间的冲突. 而且可以让会议的议题有令人惬意的结果,每次开会前都 ...

  5. uva 11892 - ENimEN(推理)

    题目链接:uva 11892 - ENimEN 题目大意:给定n堆石子的个数,两人轮流选择石子堆取石子,直到不能取为失败,附加条件,假设前一次操作,即队手的操作,没有将选中石子堆中的石子取完,那么当前 ...

  6. 【推理,贪心】UVa 1319 - Maximum

    看到了大神的代码.理解了好久...真是差距. 题意:给出m, p, a, b,然后xi满足已下两个公式, 求 xp1 + xp2 +...+ xpm 的最大值. 1.-1/sqrt(a) <= ...

  7. 【置换,推理】UVa 1315 - Creaz tea party

    Dsecription n participants of «crazy tea party» sit around the table. Each minute one pair of neighb ...

  8. UVa 1614 Hell on the Markets (贪心+推理)

    题意:给定一个长度为 n 的序列,满足 1 <= ai <= i,要求确实每一个的符号,使得它们和为0. 析:首先这一个贪心的题目,再首先不是我想出来的,是我猜的,但并不知道为什么,然后在 ...

  9. UVA 11774 - Doom&#39;s Day(规律)

    UVA 11774 - Doom's Day 题目链接 题意:给定一个3^n*3^m的矩阵,要求每次按行优先取出,按列优先放回,问几次能回复原状 思路:没想到怎么推理,找规律答案是(n + m) / ...

随机推荐

  1. EF5.0修改实体的时候,出现“对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性这个错误

    对于这个错误,要在SaveChanges前关闭验证实体有效性(ValidateOnSaveEnabled)这个开关 db.Configuration.ValidateOnSaveEnabled = f ...

  2. NOIP2004 合唱队列

    三.合唱队形 (chorus.pas/dpr/c/cpp) [问题描述] N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位 ...

  3. windows7开启虚拟wifi和虚拟无线AP的方法

         你可以开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现共享上网. 1.点开始  所有程序   命令提示符右键管理员身份运行命令 ...

  4. powerdesign的license key到期,解决办法

    到2013年9月24日为止我把这文件覆盖了都是行的!不行的请留言说明下! 下载地址:powerdesigner license key 15.1 找到安装目录,直接覆盖就行了!

  5. Eclipse Class Decompiler影响class默认打开方式,重新设置Eclipse默认源码打开方式

    安装Eclipse Class Decompiler插件后,Eclipse中的默认源码打开方式被修改为Eclipse Class Decompiler 这不是我喜欢的,因为我希望,源码从网络中获取,当 ...

  6. 【转】logger

    一个使用java.util.logging.Logger进行log输出的示例代码如下: package com.sample; import java.io.File; import java.uti ...

  7. BNUOJ 26475 Cookie Selection

    LINK:BNUOJ 26475 Cookie Selection 题意: 你在不停的输入数字a1,a2,a3,......,ak,当你输入#时,就把已输入数字中的第k/2+1删除,然后剩下的数字又组 ...

  8. 转:SQL Server 批量插入数据的两种方法

    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量 ...

  9. KEEPALIVED 检测RS原理

    keepalived管理的的ipvs功能支持对后端节点真实服务器的健康检查 一般常用的方式包括tcp_check 和http_get(更准确) tcp_check 原理就是对真实服务器进行ip+端口的 ...

  10. 通过Wifi调试Android应用

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...