Solução escrita por Estela Baron
Conhecimento prévio necessário:
Primeiramente, devemos declarar as nossas variáveis como inteiros - - e atribuir o valor da entrada a estas:
> N >> X" /> (para guardar o valor fornecido e para podermos utilizá-las). Precisamos também guardar todos os valores de
. Para isso, vamos declarar um vector
com
posições (indexadas de
a
):
a (N); " />. Depois, por meio de um
, vamos ler todos os
, atribuir ao valor de
e colocar em um
- o qual vamos declarar como
s" />. Com o
, conseguimos inserir um valor e também verificar se ele foi inserido.
Agora, a estratégia é: para cada , vamos verificar se o valor
está em nosso set. Para isso, vamos percorrer os índices de
até
de
por meio do
e verificar se
. Se for, quer dizer que achamos uma resposta e que é possível (podemos indicar isso por meio de uma variável, por exemplo um
) , caso contrário, continuamos percorrendo as outras posições. No fim, basta verificar se há ou não uma resposta e imprimir "Sim" ou "Não".
A complexidade desse código é .
Recomendamos que você tente implementar o problema antes de ver o código.Veja a implementação nesse link.