Codeforce 1311A Add Odd or Subtract Even

2020-10-29 12:37:30 浏览数 (1)

Add Odd or Subtract Even time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output You are given two positive integers a and b.

In one move, you can change a in the following way:

Choose any positive odd integer x (x>0) and replace a with a x; choose any positive even integer y (y>0) and replace a with a−y. You can perform as many such operations as you want. You can choose the same numbers x and y in different moves.

Your task is to find the minimum number of moves required to obtain b from a. It is guaranteed that you can always obtain b from a.

You have to answer t independent test cases.

Input The first line of the input contains one integer t (1≤t≤104) — the number of test cases.

Then t test cases follow. Each test case is given as two space-separated integers a and b (1≤a,b≤109).

Output For each test case, print the answer — the minimum number of moves required to obtain b from a if you can perform any number of moves described in the problem statement. It is guaranteed that you can always obtain b from a.

Example input 5 2 3 10 10 2 4 7 4 9 3 output 1 0 2 2 1 Note In the first test case, you can just add 1.

In the second test case, you don’t need to do anything.

In the third test case, you can add 1 two times.

In the fourth test case, you can subtract 4 and add 1.

In the fifth test case, you can just subtract 6. 分差的奇偶性,和大小

代码语言:javascript复制
#include <bits/stdc  .h>
using namespace std;
int main()
{
    int t;
    cin >> t;
    while (t--)
    {
    
        int a,b,c;
        cin>>a>>b;
        if(a==b) cout<<0<<endl;
        else if(a>b)
        {
            if((a-b)%2==0)cout<<1<<endl;
            else cout<<2<<endl;
        }
        else {
 
            if((b-a)%2==0)cout<<2<<endl;
            else cout<<1<<endl;
        }
    }
}

0 人点赞