Solução por Sofhia Souza
Primeiro, calculamos o valor do troco que Gil deve dar. Após isso, basta verificarmos se a soma de dois dos valores disponíveis de notas é igual ao valor do troco. O código fica bem simples:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Duas Notas - 2140 URI | |
//Solução por Sofhia Souza | |
#include <bits/stdc++.h> | |
using namespace std; | |
int main() | |
{ | |
int n, m, vet[6] = {2, 5, 10, 20, 50, 100}; //vet eh o vetor que guarda todas as 6 notas | |
while(cin >> n >> m, n, m) | |
{ | |
int troco = m-n, flag = 0; //troco eh o valor do troco que gil deve pagar e flag eh a variavel | |
//que vai me indicar se eh ou nao possivel | |
for(int i = 0 ; i < 6 ; i++) | |
{ | |
for(int j = i ; j < 6 ; j++) | |
{ | |
if(vet[i]+vet[j] == troco) flag = 1; //verifico para todos os pares possiveis | |
} //se a soma dos dois eh igual ao valor do troco, se sim | |
} //marco na flag que eh possivel | |
if(!flag) cout << "impossible\n"; | |
else cout << "possible\n"; | |
} | |
} |