买不到的数目

小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。

小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。

你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。

本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。

输入:

两个正整数,表示每种包装中糖的颗数(都不多于1000)

要求输出:

一个正整数,表示最大不能买到的糖数

不需要考虑无解的情况

例如:
用户输入:
4 7
程序应该输出:
17

再例如:
用户输入:
3 5
程序应该输出:
7

资源约定:

峰值内存消耗 < 64M
CPU消耗 < 3000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

提示

ax+by=C,不定方程的解 a=4,b=7,C=17 这种情况下,xy实际上有解,72+(7-4)==37 -1*4
a,b互质,一定有解且解的数目无穷
C是gcd(a,b)的倍数,方程一定有解,而且有无穷多解

条件:一定有解=》a,b互质
条件2:xy都是大于等于0的整数,在这个限定条件下有的C是无解的,那么C的上界是多少呢?至多是a*b

代码

#include <iostream>
#include <set>using namespace std;int main(int argc, const char *argv[]) {int a, b;scanf("%d %d", &a, &b);set<int> ss;
//  枚举a*x+b*y的值,上边界是a*bfor (int x = 0; a * x <= a * b; ++x)for (int y = 0; a * x + b * y <= a * b; ++y)ss.insert(ss.end(), a * x + b * y);for (int i = a * b; i >= 0; --i) {if (ss.find(i) == ss.end()){ //i不在set中,那么i就是答案printf("%d\n", i);return 0;}}return 0;
}

升级版代码

#include <iostream>
using namespace std;
int main (){int a,b;cin>>a>>b;cout<<a*b-a-b<<endl;return 0;
}

征战蓝桥 —— 2013年第四届 —— C/C++A组第8题——买不到的数目相关推荐

  1. 征战蓝桥 —— 2013年第四届 —— C/C++A组第10题——大臣的旅费

    大臣的旅费 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市.为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首 ...

  2. 征战蓝桥 —— 2013年第四届 —— C/C++A组第9题——剪格子

    剪格子 如图p1.jpg所示,3 x 3 的格子中填写了一些整数. 我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是60. 本题的要求就是请你编程判定:对给定的m x n 的格子中的整数, ...

  3. 征战蓝桥 —— 2013年第四届 —— C/C++A组第6题——逆波兰表达式

    标题:逆波兰表达式 正常的表达式称为中缀表达式,运算符在中间,主要是给人阅读的,机器求解并不方便. 例如:3 + 5 * (2 + 6) - 1 而且,常常需要用括号来改变运算次序. 相反,如果使用逆 ...

  4. 征战蓝桥 —— 2013年第四届 —— C/C++A组第7题——错误票据

    标题:错误票据 某涉密单位下发了某种票据,并要在年终全部收回. 每张票据有唯一的ID号.全年所有票据的ID号是连续的,但ID的开始数码是随机选定的. 因为工作人员疏忽,在录入ID号的时候发生了一处错误 ...

  5. 征战蓝桥 —— 2013年第四届 —— C/C++A组第5题——前缀判断

    题目标题:前缀判断 如下的代码判断 needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL. 比如:"abcd1234" 就包含了 ...

  6. 征战蓝桥 —— 2013年第四届 —— C/C++A组第4题——颠倒的价牌

    标题: 颠倒的价牌 小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店.其标价都是4位数字(即千元不等).小李为了标价清晰.方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了 ...

  7. 征战蓝桥 —— 2013年第四届 —— C/C++A组第3题——振兴中华

    标题: 振兴中华 小明参加了学校的趣味运动会,其中的一个项目是:跳格子.地上画着一些格子,每个格子里写一个字,如下所示: 比赛时,先站在左上角的写着"从"字的格子里,可以横向或纵向 ...

  8. 连号区间数(2013年第四届c/c++ b组第10题)

    题目描述 标题:连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个 ...

  9. 征战蓝桥 —— 2017年第八届 —— C/C++A组第5题——字母组串

    题目 由 A,B,C 这3个字母就可以组成许多串. 比如:"A","AB","ABC","ABA","AACB ...

最新文章

  1. ipykernel_launcher.py: error: unrecognized arguments: -f /Users/apple/Library/Jupyter/runtime/kernel
  2. UBUNTU adb连接android设备
  3. C++中static_cast/const_cast/dynamic_cast/reinterpret_cast的区别和使用
  4. Java Ajax: DWR
  5. Python 文件writelines() 方法和处理双层列表
  6. 限时免费下载丨《2021 中国游戏市场挑战与机遇盘点》重磅发布!
  7. SharedPreferences 的使用,commit和apply两个方法的区别
  8. 生产环境 direct path read 与log file sync等待事件问题处理
  9. P1375 嵌套矩形
  10. ora 所有表记录数_ORACLE中如何查找定位表最后DML操作的时间小结
  11. 第三章:什么是组织结构
  12. Android CoordinatorLayout
  13. Python: 生成器,yield
  14. 数据类型 swift
  15. 15.SpringMVC和Spring上下文关系(为什么SpringMVC可以调用到Spring)
  16. Pygame教程系列二:MoviePy视频播放篇
  17. 图解傅里叶变换(时域频域)
  18. 毕业论文查重注意事项论文检测查重原理(以PaperPass为例)
  19. SQL Server索引的维护 - 索引碎片、填充因子 第三篇
  20. android接入facebook登陆

热门文章

  1. 【bzoj4385】[POI2015]Wilcze doły
  2. .net利用程序集的GUID解决程序只能运行一次的问题
  3. 禁用FCKeditor浏览服务器
  4. pyqt5 实现右键自定义_《快速掌握PyQt5》第十七章 事件处理
  5. pandas显示全部数据内容_1行Python代码就能挖掘数据!这个库太神奇啦!
  6. hp designiet 500绘图仪程序_邹军:通过数控宏程序实现刀具寿命管理
  7. linux删除物理卷命令,如何安全的删除Linux LVM中的PV物理卷(硬盘或分区
  8. centos 忘记root密码_Linux忘记root密码解决方案
  9. 201671010423 词频统计软件项目报告
  10. lintcode-93-平衡二叉树