HDU 5523 Game

来源:互联网 发布:俄语翻译软件 编辑:程序博客网 时间:2024/04/28 12:16

很不错的一道小模拟 需要分几种情况来讨论

首先 当起点等于终点时 如果n不为1 则无解输出-1 

然后用3个值分别表示ss(起点和边界距离) tt(终点和边界距离) st(起点和终点距离 )

然后分情况讨论即可

#include<iostream>#include<cstdio>#include<cstring>#include<cctype>#include<cmath>#include<vector>#include<queue>#include<map>#include<algorithm>#include<set>#define scnaf scanf#define cahr char#define bug puts("=========================");using namespace std;typedef long long ll;const int maxn=3000+5;const int mod=1000000007;int main(){    int n,s,t;    while(~scnaf("%d%d%d",&n,&s,&t))    {        if(t==s)        {            if(n!=1)                puts("-1");            else puts("0");            continue;        }        int ss=0,tt=0,st=0;        if(s!=1&&s!=n) ss++;        if(t!=1&&t!=n) tt++;        if(abs(t-s)!=1) st++;        if(ss+tt==0) puts("0");        else if(st==0){            puts("1");        }        else {            if(ss==0) puts("1");            else  puts("2");        }    }}

0 0
原创粉丝点击