Algorithm


Problem Name: 2 AD-HOC - beecrowd | 2422

Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2422

Soma das Casas

 

Por OBI - Olimpíada Brasileira de Informática 2012 BR Brazil

Timelimit: 1

Joãozinho mora em uma rua que tem N casas. Marquinhos é o melhor amigo dele, mas sempre gosta de pregar peças em Joãozinho. Desta vez, ele pegou os dois brinquedos prediletos de Joãozinho e os escondeu em duas casas distintas da rua. Em compensação, Marquinhos deu uma dica importante para Joãozinho:

A soma dos números das casas em que escondi teus brinquedos é igual a K. Além disso, escolhi as casas de tal forma que não existe outro par de casas cuja soma tenha esse mesmo valor.

Sabendo disto, encontre qual é o par de casas em que se encontram os brinquedos de Joãozinho. Para auxiliar seu amigo, Marquinhos entregou a Joãozinho uma lista com o número das casas já em ordem crescente (isto é, do menor para o maior número).

 

Entrada

 

A primeira primeira linha da entrada contém um número inteiro N (2 ≤ N ≤ 105), que representa o número de casas que existem na rua. Cada uma das N linhas seguintes contém um número inteiro, representando o número de uma casa (Para cada casa Ci , 0 ≤ Ci ≤ 109 , i = 1, 2, . . . , N). Note que esses N números estão ordenados, do menor para o maior. A última linha da entrada contém um inteiro K, que é a soma dos números das duas casas onde os brinquedos estão escondidos , (os números das casas estão em ordem crescente, do menor para o maior número, e casas distintas têm números distintos).

 

Saída

 

Seu programa deve imprimir uma única linha, contendo dois inteiros, A e B, A < B, que representam os números das casas em que estão escondidos os brinquedos. Os dois números devem ser separados por um espaço em branco.

 

 

 

Exemplos de Entrada Exemplos de Saída

4

1

2

3

5

8

3 5

 

Code Examples

#1 Code Example with C++ Programming

Code - C++ Programming


#include <iostream>
#include <set>
using namespace std;
int main() {
    set < int> casa;
    int n, i, valor;
    cin >> n;
    for (i = 0; i  <  n; i++) {
        int davez;
        cin >> davez;
        casa.insert(davez);
    }
    cin >> valor;
    set < int>::iterator it;
    for (it = casa.begin(); it != casa.end(); it++) {
        if (casa.count(valor - *it)) {
            cout << *it << " " << valor - *it << endl;
            return 0;
        }
    }
    return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
4
1
2
3
5
8

Output

x
+
cmd
3 5
Advertisements

Demonstration


Previous
#2421 Beecrowd Online Judge Solution 2421 Álbum de Fotos Solution in C, C++, Java, Js and Python
Next
#2423 Beecrowd Online Judge Solution 2423 Receita de Bolo Solution in C, C++, Java, Js and Python