切换到宽版
  • 6833阅读
  • 1回复

难题!望大牛给予解答! [复制链接]

上一主题 下一主题
离线aviczhl2
 
只看楼主 倒序阅读 0 发表于: 2009-12-05
一道题目
不知道怎么做:
有两个人在玩一个游戏:
桌上有n(1<=n<10)堆豆子,每堆有xi(1<=xi<100)个:
每个人可以轮流将一堆豆子分为大小不同的两堆,
在一些情况下,谁不能分了,他就输了,
而在另一些情况下,最后一个可以分的人输
每个人在轮到他分时必须分,不能弃权
问:谁能取胜?

输入数据:第一行包含两个数据:n和t.
          t为1代表不能分的人输,t=2代表最后一个分的人输
              第2..n+1行:每行一个数据:xi
输出数据:若先走者可胜,则输出两行:
        第一行为分离的堆的编号
       第二行为分离的两个小堆的大小,小在前,大在后.
若有多种分离办法,选取编号较小的堆进行分离
若在这个堆中有几种可行的办法,则应使分离出的堆中,较小的堆尽量小.
               若先走者不能胜,则输出一行"Impossible"
输入样例1
1 1
3

输出样例1
1
1 2

输入样例2
2 2
4
2

输出样例2
1
1 3

输入样例3
2 1
4
4

输出样例3
Impossible

离线jrqabc
只看该作者 1 发表于: 2010-10-23
tian na!
快速回复
限100 字节
 
上一个 下一个