Andrew Stankevich's Contest (21)

F - "Money, Money, Money"

Time Limit:  2000/1000MS (Java/Others)  Memory Limit:  128000/64000KB (Java/Others)      Special Judge
Problem Description
      The government of Flatland has decided to carry out the money system reform. The purpose of the reform is to reduce the number of different banknotes denominations down to two. After the reform there will be two types of banknotes — a tupiks and b tupiks.
      The problem is that the president of Flatland doesn’t like the number x. Therefore the minister of finances was instructed to choose such a and b that it is impossible to pay exactly x tupiks without change. On the other hand it must be possible to pay all amounts larger than x.
      Now you are asked to help him — choose such a and b, or recommend the minister to retire, if it is impossible.
Input
      Input file contains one number x (1 ≤ x ≤ 10 12).
Output
      Output two integer numbers a and b, such that it is impossible to pay x tupiks using banknotes of a and b tupiks without change, but it is possible to pay any larger sum. If it is impossible, output two zeroes to the output file.
Sample Input
3
4
5
Sample Output
2 5
0 0
3 4
意解:易知任何一个自然数总可以表达成(2 * x + 奇数)的形式,所以对于任何的奇数z,总是可以找出两个数a,b,使之可以构造出所有大于z的数; //而对于偶数,一定不可以构成;(希望巨巨们可以给出证明)

AC代码:
/*
* this code is made by eagle
* Problem: 1408
* Verdict: Accepted
* Submission Date: 2014-10-03 07:05:36
* Time: 0MS
* Memory: 1676KB
*/
#include <iostream>
 
using namespace  std;
typedef long long ll;
 
int main()
{
       ll a;
       while(cin>>a){
           if(a & 1){
               cout<<2<<" "<<a + 2<<endl;
         } 
         else cout<<0<<" "<<0<<endl;   
    }
   return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值