阿里巴巴和n个大盗

Time Limit: 1000MS   Memory Limit: 65535KB   64bit IO Format: %lld & %llu

Submit
Status

Description

阿里巴巴和n个大盗来到了一个藏满宝石的洞穴。洞里一共有m颗价值连城的宝石,每一颗都等价。盗亦有道,为了奖励帮忙打开洞穴门的阿里巴巴,大盗们决定让他一起加入分赃。大盗们决定采用一种方式分赃,分赃的方式如下:

1)每个人由抽签决定了自己的号码(1,
2,
3,
\cdots,
n+1)。

2)由n+1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时(包括他自己),按照他的方案进行分配,否则这个人将被杀死。

3)n+1号死后,由n号接替n+1号对剩下的人提出分配方案,类似2步骤。以此类推。

大盗们都有如下的几个性格特点

1)足智多谋,总是采取最优策略。

2)贪生怕死,尽量保全自己性命。

3)贪得无厌,希望自己得到越多宝石越好

4)心狠手辣,在自己利益最大的情况想希望越多人死越好。

5)疑心多虑,不信任彼此,尽量确保自身利益不寄希望与别人给自己更大利益。

不知道是不幸还是幸运,阿里巴巴抽到了n+1号签,意味着他将第一个提出分配方案。他想请教机智的你,他能否活下来,如果能又将获得最多多少个宝石?

Input

两个整数n,
m,分别表示n个大盗和m个宝石(1
\leq n \leq 2 \cdot m-2,
2 \leq m \leq 100)。

Output

如果阿里巴巴能活下来输出一个整数x表示阿里巴巴最多获得的宝石数,否则输出-1。

Sample Input

4 100

Sample Output

97

Hint

分配方案 0 2 1 0 97 或2 0 1 0 97(从1号到5号)。

Source

第七届ACM趣味程序设计竞赛第二场(正式赛)

#include<iostream>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
n++;
if(n==2)
cout<<-1<<endl;
else if(n==3)
cout<<m<<endl;
else cout<<m-(n+1)/2<<endl;
}
return 0;
}

最新文章

  1. mybatis : trim标签, “等于==”经验, CDATA标签 ,模糊查询CONCAT,LIKE
  2. 【转】关于Java的Daemon线程的理解
  3. MyEclipse8.5破解方法
  4. UVA 111 History Grading
  5. VS2012添加PlaySound引用
  6. 利用ADSL拨号上网方式如何搭建服务器
  7. 【JS】Advanced1:Object-Oriented Code
  8. Spring 事务模型
  9. cocos2dx js文件加密为jsc文件
  10. Java-Iterator的用法
  11. [置顶] Hibernate运行机理
  12. java笔记10之循环
  13. Ubuntu Code::Blocks IDE 13.12 汉化
  14. java面试题(一)
  15. ASP.NET没有魔法——ASP.NET MVC 与数据库之EntityFramework配置与连接字符串
  16. bzoj 4653: [Noi2016]区间
  17. SoapUI 请求 https 报 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
  18. Windows 10 IoT Core 17093 for Insider 版本更新
  19. 数据结构(二): 轻量级键值对 SparseArray
  20. SNF快速开发平台3.0之--系统里广播的作用--迅速及时、简明扼要的把信息发送给接收者

热门文章

  1. JS——百度背景图
  2. Caffe2:ubuntu修改链接方式ln
  3. 汇总——WEB前端资源网
  4. HDU_1023_Train Problem II_卡特兰数
  5. word-spacing和letter-spacing区别
  6. gitlab分享项目到其它组
  7. iptables简单了解
  8. chrome本地测试cookie时无效的原因
  9. Python-程序的控制结构
  10. js调用ro的webservice