Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 1087. Mostrar todas as postagens
Mostrando postagens com marcador 1087. Mostrar todas as postagens

segunda-feira, 21 de dezembro de 2020

URI - 1087- Dama - Ad-Hoc - C - Solução Alternativa

Plataforma: URI

Problema1087

Enunciado:

O jogo de xadrez possui várias peças com movimentos curiosos: uma delas é a dama, que pode se mover qualquer quantidade de casas na mesma linha, na mesma coluna, ou em uma das duas diagonais, conforme exemplifica a figura abaixo.

O grande mestre de xadrez Kary Gasparov inventou um novo tipo de problema de xadrez: dada a posição de uma dama em um tabuleiro de xadrez vazio (ou seja, um tabuleiro 8 × 8, com 64 casas), de quantos movimentos, no mínimo, ela precisa para chegar em outra casa do tabuleiro?

Kary achou a solução para alguns desses problemas, mas teve dificuldade com outros, e por isso pediu que você escrevesse um programa que resolve esse tipo de problema. 


Linguagem: C

Solução: 

#include <stdio.h>
short int abs(short int x) {
    return (x < 0)? -x : x;
}
int main() {    
    short int x1, y1, x2, y2, resposta;    
    while (1) {        
        scanf("%hd %hd %hd %hd", &x1, &y1, &x2, &y2);        
        if (x1 == 0 && y1 == 0 && x2 == 0 && y2 == 0)
            break;
        else if (x1 == x2 && y1 == y2)
            printf("0\n");
        else if (x1 == x2 || y1 == y2 || abs(x1-x2) == abs(y1-y2))
            printf("1\n");
        else
            printf("2\n");
    }
    return 0;
}

URI - 1087- Dama - Ad-Hoc - C++ - Solução Alternativa

Plataforma: URI

Problema1087

Enunciado:

O jogo de xadrez possui várias peças com movimentos curiosos: uma delas é a dama, que pode se mover qualquer quantidade de casas na mesma linha, na mesma coluna, ou em uma das duas diagonais, conforme exemplifica a figura abaixo.

O grande mestre de xadrez Kary Gasparov inventou um novo tipo de problema de xadrez: dada a posição de uma dama em um tabuleiro de xadrez vazio (ou seja, um tabuleiro 8 × 8, com 64 casas), de quantos movimentos, no mínimo, ela precisa para chegar em outra casa do tabuleiro?

Kary achou a solução para alguns desses problemas, mas teve dificuldade com outros, e por isso pediu que você escrevesse um programa que resolve esse tipo de problema. 


Linguagem: C++

Solução: 

#include <iostream>
using namespace std;
short int abs(short int x, short int y) {
    return (x < y)? y - x : x - y;
}
int main() {
    short int x1, y1, x2, y2, resposta;
    while (cin >> x1 >> y1 >> x2 >> y2) {
        resposta = 2;
        if (x1 == 0 && y1 == 0 && x2 == 0 && y2 == 0)
            break;
        else if (x1 == x2 && y1 == y2)
            resposta = 0;
        else if (x1 == x2 || y1 == y2 || abs(x1-x2) == abs(y1-y2))
            resposta = 1;
        cout << resposta << endl;
    }
    return 0;
}

URI - 1087- Dama - AD-HOC - C++

  Plataforma: URI

Problema1087

Enunciado:

O jogo de xadrez possui várias peças com movimentos curiosos: uma delas é a dama, que pode se mover qualquer quantidade de casas na mesma linha, na mesma coluna, ou em uma das duas diagonais, conforme exemplifica a figura abaixo.

O grande mestre de xadrez Kary Gasparov inventou um novo tipo de problema de xadrez: dada a posição de uma dama em um tabuleiro de xadrez vazio (ou seja, um tabuleiro 8 × 8, com 64 casas), de quantos movimentos, no mínimo, ela precisa para chegar em outra casa do tabuleiro?

Kary achou a solução para alguns desses problemas, mas teve dificuldade com outros, e por isso pediu que você escrevesse um programa que resolve esse tipo de problema. 


Linguagem: C++

Solução: 

#include <iostream>
#include <cmath>

using namespace std;
int main() {
    int x1, y1, x2, y2;
    cin >> x1 >> y1 >> x2 >> y2;
    while(x1 !=0 and x2 != 0 and y1 !=0 and y2!=0){
	
    	if(x1 == x2 and y1 == y2) cout << 0 << endl;
    	else{
    		bool oneMove = false;
    		if(x1 == x2 or y1==y2) oneMove = true;
    		if(abs(x1-x2)==abs(y1-y2)) oneMove = true;
    		if(oneMove) cout << 1 << endl;
    		else cout << 2 << endl;
		}
    	
		cin >> x1 >> y1 >> x2 >> y2;
   	}
    return 0;
}

URI - 1087- Dama - AD-HOC - C

Plataforma: URI

Problema1087

Enunciado:

O jogo de xadrez possui várias peças com movimentos curiosos: uma delas é a dama, que pode se mover qualquer quantidade de casas na mesma linha, na mesma coluna, ou em uma das duas diagonais, conforme exemplifica a figura abaixo.

O grande mestre de xadrez Kary Gasparov inventou um novo tipo de problema de xadrez: dada a posição de uma dama em um tabuleiro de xadrez vazio (ou seja, um tabuleiro 8 × 8, com 64 casas), de quantos movimentos, no mínimo, ela precisa para chegar em outra casa do tabuleiro?

Kary achou a solução para alguns desses problemas, mas teve dificuldade com outros, e por isso pediu que você escrevesse um programa que resolve esse tipo de problema. 


Linguagem: C

Solução: 

#include <stdio.h>
#include <math.h>

int main() {
    int x1, y1, x2, y2;
    int oneMove;
    scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
    while(x1 !=0 && x2 != 0 && y1 !=0 && y2!=0){
	
    	if(x1 == x2 && y1 == y2) printf("0\n");
    	else{
    		oneMove = 0;
    		if(x1 == x2 || y1==y2) oneMove = 1;
    		if(abs(x1-x2)==abs(y1-y2)) oneMove = 1;
    		if(oneMove)  printf("1\n");
    		else  printf("2\n");
		}	
		scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
   	}
    return 0;
}

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas