"Andando no Tempo" é o problema resolvido aqui! Veja!
Plataforma: URI (BEECROWD)
Problema: 2235
Enunciado:
Imagine que você tenha uma máquina do tempo que pode ser usada no máximo três vezes, e a cada uso da máquina você pode escolher voltar para o passado ou ir para o futuro. A máquina possui três créditos fixos; cada crédito representa uma certa quantidade de anos, e pode ser usado para ir essa quantidade de anos para o passado ou para o futuro. Você pode fazer uma, duas ou três viagens, e cada um desses três créditos pode ser usado uma vez apenas. Por exemplo, se os créditos forem 5, 12 e 9, você poderia decidir fazer duas viagens: ir 5 anos para o futuro e, depois, voltar 9 anos para o passado. Dessa forma, você terminaria quatro anos no passado, em 2012. Também poderia fazer três viagens, todas indo para o futuro, usando os créditos em qualquer ordem, terminando em 2042.
Neste problema, dados os valores dos três créditos da máquina, seu programa deve dizer se é ou não possível viajar no tempo e voltar para o presente, fazendo pelo menos uma viagem e, no máximo, três viagens; sempre usando cada um dos três créditos no máximo uma vez.
Linguagens: C e C++
Solução:
Após ler os três valores, a proposta da solução é de apenas testar as condições de que os valores são diferentes, e também diferentes da soma dos outros dois valores. Utilizei esta lógica em C e C++.
Código em C:
#include <stdio.h> int main() { int a, b, c; scanf("%i %i %i", &a, &b, &c); if (a != b + c && b != a + c && c != a + b && a != b && a != c && b != c) printf("N\n"); else printf("S\n"); return 0; }
#include <iostream> using namespace std; int main() { int a, b, c; cin >> a >> b >> c; if (a != b + c && b != a + c && c != a + b && a != b && a != c && b != c) cout << "N" << endl; else cout << "S" << endl; return 0; }
Nenhum comentário:
Postar um comentário