UVA - 846 Steps

来源:互联网 发布:百度文库免费下载软件 编辑:程序博客网 时间:2024/06/05 13:29

点击打开链接

简单题,问你由x到y的最小步数,最初和最后一个数都是1,并且当前数要比前面那个数大1,或者等于,或者小于1 ,那么左右对称的序列能在最小的步数得到最大的距离,那么

在得到差值之后我每次从首尾增加步数,首先从头部开始加,然后判断是否大于0,在从尾部开始加。

#include<cstdio>int main(){    int n,a,b;    scanf("%d",&n);    while(n--)    {        scanf("%d%d",&a,&b);        int cnt=b-a;        bool flag=0;        int step=1,ans=0;        while(cnt>0)        {            cnt-=step;            ans++;            if(flag) step++;            flag=!flag;        }        printf("%d\n",ans);    }    return 0;}


0 0