Codeforces Round #624 (Div. 3) A题

https://codeforces.com/contest/1311
A. Add Odd or Subtract Even(奇数加偶数减)
已知两个正整数a和b。
你可以通过以下方式改变 a:选择任意正奇数x (x>0),用a+x代替a;选择任意正偶数y (y>0),用y代替a。您可以执行任意数量的此类操作。你可以在不同的移动中选择相同的数字x和y。
目的是找出从a中得到b所需要的最小步数。保证总能从a中得到b。
要求回答t个独立的测试用例。

输入

输入的第一行包含一个整数t(1≤t≤10^4)即测试用例的数量。
接着t个测试用例如下。
每个测试用例均以两个以空格分隔的整数a和b(1≤a,b≤10^9)。

输出

对于每个测试用例,输出获得b所需的最小移动数,确保始终可以从a获得b。

样例
Input
5
2 3
10 10
2 4
7 4
9 3

Output
1
0
2
2
1

#include<iostream>
#include<cmath>
#include<algorithm>
#define M 10005
using namespace std;

int main()
{
    int t,a[M],b[M],times[M],temp;
    cin>>t;
    for(int i=0;i<t;i++)
    {
        cin>>a[i]>>b[i];
        if(a[i]>b[i])
        {
            temp=a[i]-b[i];
            if(temp%2==0) times[i]=1;    //a、b的差若能整除2,直接减a、b差值的偶数
            else times[i]=2;
        }
        if(a[i]<b[i])
        {
            temp=b[i]-a[i];
            if(temp%2==0) times[i]=2;    //a、b的差若能整除2,便减一个奇数使其差变为偶数
            else times[i]=1;             //也能理解为加一个偶数再减一个奇数
        }
        if(a[i]==b[i]) times[i]=0;
    }
    for(int i=0;i<t;i++)
        cout<<times[i]<<endl;
    return 0;
}

锁在家打CF真的是
无言独上西楼,月如钩,寂寞梧桐深院锁清“春”。
加油

全部评论

相关推荐

微风不断:兄弟,你把四旋翼都做出来了那个挺难的吧
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务