Skip to content
Snippets Groups Projects
main.cpp 1.35 KiB
Newer Older
#include <iostream>
#include <cstdlib>

void fill_random(int* numeros, size_t n) {
    for (size_t i = 0; i < n; ++i) {
        numeros[i] = rand() % 100;
    }
}

void sort(int* numeros, size_t n) {
    for (size_t i = 0; i < n - 1; ++i) {
        for (size_t j = i + 1; j < n; ++j) {
            if (numeros[j] < numeros[i]) {
                int tmp    = numeros[j];
                numeros[j] = numeros[i];
                numeros[i] = tmp;
            }

        }
    }
}

int find_sum(int* numeros, size_t n, int target) {
    if (numeros[0] > target)  {
        return 0;
    }
    for (size_t left = 0, right = n - 1; left < right;) {
        int sum = numeros[left] + numeros[right];

        if (sum == target) {
            return 1;
        }

        if (sum > target) {
            right--;
        } else {
            left++;
        }
    }

    return 0;
}

int main(int argc, char* argv[]) {
    //começa a contagem 1
    if (argc <= 2) {
        std::cout << "Usage: " << argv[0] << " <number of elements> <target sum>\n";
        return -1;
    }

    size_t n = std::atoi(argv[1]);
    size_t t = std::atoi(argv[2]);

    int* numeros = new int[n];

    fill_random(numeros, n);
    sort(numeros, n);


    //começa a contagem 2
    std::cout << find_sum(numeros, n, t) << "\n";
    //termina a contagem 2


    delete[] numeros;
    //termina a contagem 1
}