Skip to main content

URI Online Judge Solution 1087 Queen


URI Online Judge Solution 1087 Queen using Python Programming Language.
The game of Chess has several pieces with curious movements. One of them is the Queen, which can move any number of squares in any direction: in the same line, in the same column or in any of the diagonals, as illustrated by the figure below (black dots represent positions the queen may reach in one move):



The great Chess Master Kary Gasparov invented a new type of chess problem: given the position of a queen in an empty standard chess board (that is, an 8 x 8 board) how many moves are needed so that she reaches another given square in the board?
Kary found the solution for some of those problems, but is having a difficult time to solve some others, and therefore he has asked that you write a program to solve this type of problem.

Input

The input contains several test cases. The only line of each test case contains four integers X1Y1X2 and Y2 (1 ≤ X1, Y1, X2, Y2 ≤ 8). The queen starts in the square with coordinates (X1, Y1), and must finish at the square with coordinates (X2, Y2). In the chessboard, columns are numbered from 1 to 8, from left ro right; lines are also numbered from 1 to 8, from top to bottom. The coordinates of a square in line X and column Y are (X, Y).
The end of input is indicated by a line containing four zeros, separated by spaces.

Output

For each test case in the input your program must print a single line, containing an integer, indicating the smallest number of moves needed for the queen to reach the new position.
Input SampleOutput Sample
4 4 6 2
3 5 3 5
5 5 4 3
0 0 0 0
1
0
2

Solution using Python :

import sys
for line in sys.stdin:
    X1, Y1, X2, Y2 = map(int,line.split())
    if X1 + Y1 + X2 + Y2 == 0:
        break
    if X1 == X2 and Y1 == Y2:
        print("%d" % 0)
        continue
    if X1 == X2 or Y1 == Y2:
        print("%d" % 1)
        continue
    if abs(X1 - X2) == abs(Y1 - Y2):
        print("%d" % 1)
        continue
    print("%d" % 2)

Comments

Popular posts from this blog

URI Problem 1001 Solution Extremely Basic - - URI Online Judge Solution

URI Online Judge Problem 1001 Extremely Basic Solution using C, Python Programming Language. Read 2 variables, named  A  and  B  and make the sum of these two variables, assigning its result to the variable  X . Print  X  as shown below. Print endline after the result otherwise you will get “ Presentation Error ”. Input The input file will contain 2 integer numbers. Output Print the letter  X  (uppercase) with a blank space before and after the equal signal followed by the value of X, according to the following example. Obs.: don't forget the endline after all. Samples Input Samples Output 10 9 X = 19 -10 4 X = -6 15 -7 X = 8 URI 1001 Solution in Python A = int(input()) B = int(input()) X = A + B print("X =",X); URI 1001 Solution in C: #include int main() { int A,B,X; scanf ("%d %d", &A, &B); X=A+B; printf("X = %d\n",X); return 0; }

URI Problem 1179 Solution Array Fill IV - URI Online Judge Solution

URI Online Judge Solution 1179 Array Fill IV  Using C, Python Programming Language. In this problem you need to read 15 numbers and must put them into two different arrays: par if the number is even or impar if this number is odd. But  the size of each of the two arrrays is only 5 positions. So every time you fill one of two arrays, you must print the entire array to be able to use it again for the next numbers that are read. At the end, all remaining numbers of each one of these two arrays must be printed beginning with the odd array. Each array can be filled how many times are necessary. Input The input contains 15 integer numbers. Output Print the output like the following example. Input Sample Output Sample 1 3 4 -4 2 3 8 2 5 -7 54 76 789 23 98 par[0] = 4 par[1] = -4 par[2] = 2 par[3] = 8 par[4] = 2 impar[0] = 1 impar[1] = 3 impar[2] = 3 impar[3] = 5 impar[4] = -7 impar[0] = 789 impar[1] = 23 par[0] = 54 par[1] = 76 par[2] = 98 Solution Using C: #include <stdi...

URI Problem 1186 Solution Below the Secundary Diagonal - URI Online Judge Solution

URI Online Judge Solution 1186 Below the Secundary Diagonal   Using C, Python Programming Language. Read an uppercase character that indicates an operation that will be performed in an array M[12][12]. Then, calculate and print the sum or average considering only that numbers that are below of the Secundary diagonal of the array, like shown in the following figure (green area). Input The first line of the input contains a single uppercase character O ('S' or 'M'), indicating the operation Sum or Average (Média in portuguese) to be performed with the elements of the array. Follow 144 floating-point numbers of the array. Output Print the calculated result (sum or average), with one digit after the decimal point. Input Sample Output Sample S 5.0 0.0 -3.5 2.5 4.1 ... 12.6 Solution Using C: #include <stdio.h> int main() {     double a=0.0, M[12][12];     char T[2];     int x,y,c=0;     scanf("%s", &T);     for(x=0;x<=1...