Noip2017 小凯的疑惑——提高组D1T1

原题地址(点我)

题目描述

小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有 无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品。

输入输出格式

输入格式:

 

输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手 中金币的面值。

 

输出格式:

 

输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。

 

输入输出样例

Sample Input

3 7

Sample Output

11

说明

【输入输出样例 1 说明】

小凯手中有面值为3和7的金币无数个,在不找零的前提下无法准确支付价值为1、 2、4、5、8、11 的物品,其中最贵的物品价值为 11,比 11 贵的物品都能买到,比如:

12=3×4+7×0

13=3×2+7×1

14=3×0+7×2

15=3×5+7×0

【数据范围与约定】

对于 30%的数据: 1a,b50。

对于 60%的数据: 1a,b10^4。

对于 100%的数据:1a,b≤10^9

 

无奈,一个提高组的人由于Linux被迫掉到普及组

只能默默地看着题目

这题写起来很方便,主要是要把题目意思读懂

O(1)算法:

 

 1 #include <cstdio>
 2 #define ll long long
 3 using namespace std;
 4 ll a,b;
 5 int main()
 6 {
 7     scanf("%lld%lld",&a,&b);
 8     ll ans=a*b-a-b;
 9     printf("%lld\n",ans);
10     return 0;
11 }
小凯的疑惑

 

posted @ 2017-11-19 13:08  LHR-LHR  阅读(809)  评论(0编辑  收藏  举报