Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Andrew Stankevich's Contest (21)

Andrew Stankevich's Contest (21)

編輯:關於Android編程

F - "Money, Money, Money"

Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Special Judge SubmitStatus

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 ≤ 1012).

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 
 
using namespace  std;
typedef long long ll;
 
int main()
{
       ll a;
       while(cin>>a){
           if(a & 1){
               cout<<2<<" "<

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved