Codeforces Round #171 (Div. 2) A. Point on Spiral

#include<iostream>

#include<math.h>

using namespace std;

int ABS(int a)

{

	return a>0?a:-a;

}

int main()

{

	

     int a,b;

	 int flage;

	 int turn;

	 int temp,tempa,tempb;

	 while(cin>>a>>b)

	 {

     tempa=ABS(a);

	 tempb=ABS(b);

	 if(tempa!=0||tempb!=0)

	 {

     

	 if(tempa!=tempb||(a>0&&a+b==0))

	 {

		 temp=tempa>tempb?a:b;

		 if(temp==a)flage=0;

		 else flage=1;

		 if(temp<0)

		 {

			 if(flage==0)

             turn=ABS(temp)*2+ABS(temp)*2-1;

			 else

		     turn=ABS(temp)*2+ABS(temp)*2;

         }

		 else

		 if(temp>0)

		 {

			 if(flage==0)

		     turn=(temp-1)*2+(temp-1)*2-1+2;

			 else

			 turn=(temp-1)*2+(temp-1)*2+2;

		 }

		 if(a+b==1&&a>b)turn-=1;

	 }

	 else

     if(a==b)

	 {

          if(a>0)

		  	  turn=4*(a-1)+1;

		  else

               turn=4*(ABS(a)-1)+3;

     }

	 if(a+b==0&&a<0)

	 {

		 turn=(ABS(a)-1)*4+2;

	 }

	 }

     else

		 turn=0;

	 cout<<turn<<endl;

	 }

	return 0;

}

  

你可能感兴趣的:(codeforces)