O problema resolvido aqui é o "De quem é a vez?", do Beecrowd. Confira as respostas em C e C++!
Plataforma: URI (BEECROWD)
Problema: 1914
Enunciado:
Amarelinha provavelmente é a brincadeira em que as crianças da vila mais se divertem, porém a mesma vem causando um bom tempo de discussão e choro nas crianças que a praticam. A causa do transtorno é para decidir quem será o próximo a pular, mas recentemente Quico (O gênio!) teve uma grande ideia para solucionar o problema. Basicamente a brincadeira só poderá ser jogada de dois em dois jogadores e para escolher o próximo jogador Quico indicou o uso do tradicional método par ou ímpar, onde os dois jogadores informam um número e se a soma desses números for par o jogador que escolheu PAR ganha ou vice verso. Entretanto a utilização desse método vem deixando o Quico louco, louco, louco... E por esse motivo ele pediu a sua ajuda! Solicitou a você um programa que dado o nome dos jogadores, suas respectivas escolhas PAR ou IMPAR e os números, informe quem foi o vencedor.
Linguagens: C e C++
Solução:
Nesse exercício é necessário verificar se n+m é par ou ímpar. O teste de ser ímpar foi feito com bitwise. Além disso, é necessário saber o que cada jogador escolheu. Se o primeiro jogador escolheu ímpar e n+m é ímpar, ele ganhou. Se a soma for par e o segundo jogador escolheu ímpar, ele (o primeiro jogador) também ganhou. Caso contrário, o segundo jogador venceu. Você pode criar as condições de outras formas, eu fiz desse jeito!
Código em C:
#include <stdio.h> int main() { char *nome1 = (char *) malloc(sizeof(char) * 32); char *nome2 = (char *) malloc(sizeof(char) * 32); char *escolha1 = (char *) malloc(sizeof(char) * 6); char *escolha2 = (char *) malloc(sizeof(char) * 6); int qt, n, m; scanf("%i ", &qt); while (qt--) { scanf("%s %s %s %s ", nome1, escolha1, nome2, escolha2); scanf("%i %i", &n, &m); if ((((n + m) & 1) && escolha1[0] == 'I') || (((n + m) % 2 == 0) && escolha2[0] == 'I')) printf("%s\n", nome1); else printf("%s\n", nome2); } return 0; }
Código em C++:
#include <iostream> using namespace std; int main() { string nome1, nome2, escolha1, escolha2; int qt, n, m; cin >> qt; cin.ignore(); while (qt--) { cin >> nome1 >> escolha1 >> nome2 >> escolha2; cin >> n >> m; cin.ignore(); if ((((n + m) & 1) && escolha1[0] == 'I') || (((n + m) % 2 == 0) && escolha2[0] == 'I')) cout << nome1 << endl; else cout << nome2 << endl; } return 0; }
Nenhum comentário:
Postar um comentário