码迷,mamicode.com
首页 > 其他好文 > 详细

辗转相减,求最后的a b

时间:2018-03-10 15:56:03      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:rac   specific   values   integer   only   main   ISE   for   codeforce   

 来源:codeforces                            B. Weird Subtraction Process

You have two variables a and b. Consider the following sequence of actions performed with these variables:

  1. If a?=?0 or b?=?0, end the process. Otherwise, go to step 2;
  2. If a?≥?2·b, then set the value of a to a?-?2·b, and repeat step 1. Otherwise, go to step 3;
  3. If b?≥?2·a, then set the value of b to b?-?2·a, and repeat step 1. Otherwise, end the process.

Initially the values of a and b are positive integers, and so the process will be finite.

You have to determine the values of a and b after the process ends.

Input

The only line of the input contains two integers n and m (1?≤?n,?m?≤?1018). n is the initial value of variable a, and m is the initial value of variable b.

Output

Print two integers — the values of a and b after the end of the process.

Examples
input
Copy
12 5
output
0 1
input
Copy
31 12
output
7 12





思路:
模拟题目给出的步骤,逐步求解,超时,后来想到预处理ab,预处理不彻底,被hack
总结:
不能鲁莽的模拟,一定要考虑到特殊情况,千万不能因为简单而大意。这种题目应该分析出公式

#include <bits/stdc++.h>
using namespace std;
long long a,b;
int main()
{
    cin>>a>>b;
    while(a!=0&&b!=0)
    if(a>=2*b)
    {
        a%=(2*b);
    }
    else if(b>=2*a)
    {
        b%=(2*a);
    }
    else break;
    cout<<a<<" "<<b<<endl;
    return 0;
}

 

辗转相减,求最后的a b

标签:rac   specific   values   integer   only   main   ISE   for   codeforce   

原文地址:https://www.cnblogs.com/carcar/p/8538794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!