Правильно ли реализована задача?

236
15 июля 2017, 08:44

Здравствуйте, такая задачка для олимпиады:

Предположим, что нам задана последовательность пар чисел (A [0], B [0]), (A [1], B [1]), ..., (A [n], B [n]) и Последовательность чисел C [0], C [1], ..., C [m]. Все элементы в последовательности A разные. Для каждого элемента C [k] последовательности C напечатайте элемент B [i], если существует такое i, что C [k] = A [i] или напечатайте число 0, если такого числа i не существует. Входные данные представляют собой целые числа - элементы последовательностей. Все числа разделены пробелами. Количество членов последовательностей неизвестно заранее. Первые числа являются элементами последовательности пар чисел (A [I], В [I]). Первые два числа - это элементы A [0] и B [0]. Второе два числа - это элементы A [1] и B [1] и т. Д. В конце последовательности пар есть число -1. -1 не является членом последовательности A или последовательности B или последовательности C. Следующие числа являются элементами последовательности C. В конце последовательности B есть число -1. -1 не является членом последовательности C. Выходные данные должны быть последовательностью, которая состоит из нулей и элементов последовательности B. Все числа должны быть разделены пробелом. Последовательность должна заканчиваться цифрой -1.

Написал данный код(Без библиотек STL), но всё равно проверка выдаёт что не правильно. В чем может быть проблема?

#include <iostream>
using namespace std;
int main()
{
    int input;
    int counter = 0, counterc=0;                           
    int * A = NULL, *B = NULL, *C = NULL;
    int * many_numbers;
    while (1)
    {
        cin >> input;
        if (input == -1)
            break;
        counter++;
        many_numbers = (int*)realloc(A, counter * sizeof(int)); 
        if (many_numbers != NULL)
        {
            A = many_numbers;
            A[counter - 1] = input;                      
        }
        else
        {
            free(A);                                 
            std::cout << "Ошибка перевыделения памяти!";
            exit(1);                                         
        }
        cin >> input;
        many_numbers = (int*)realloc(B, counter * sizeof(int));
        if (many_numbers != NULL)
        {
            B = many_numbers;
            B[counter - 1] = input;                     
        }
        else
        {
            free(B);                                   
            std::cout << "Ошибка перевыделения памяти!";
            exit(1);                                          
        }                              
    }
        while(1)
        {
            std::cin >> input;
            if (input == -1)
                break;
            counterc++;
            many_numbers = (int*)realloc(C, counterc * sizeof(int)); 
            if (many_numbers != NULL)
            {
                C = many_numbers;
                C[counterc - 1] = input;                     
            }
            else
            {
                free(C);                                  
                std::cout << "Ошибка перевыделения памяти!";
                exit(1);
            }
        }
        input = 0;
    for (auto i = 0; i < counterc; ++i)
    {
        if (i> counter)
            cout << 0;
        else
        {
            for (auto j = 0; j < counter; ++j) 
            {
                if (C[i] == A[j])
                    input= B[i];
            }
            cout << input;
            input = 0;
        }
        cout << " ";
    }
    cout << -1;
    free(A);
    free(B);
    free(C);
    return 0;
}
READ ALSO
Ошибки в проекте с CMake

Ошибки в проекте с CMake

LinuxПроект kaitai, файлы он сгенерировал, поэтому проблем с хедерами и вообще с кодом быть вроде не должно

222
Перевод строки в double

Перевод строки в double

Как перевести строку типа string s = "000000000000f8bf" в значение double? Я знаю как прочитать с файла такое значение, и правильно перевестиА как со строкой...

372
Помогите задать pattern validation

Помогите задать pattern validation

Нужно чтобы могли быть введены только русские или английские буквы в верхнем и нижнем регистре, а также символы пробел или дефис

356
JS событие .on(&ldquo;click&rdquo;) в паре с .filter .attr (оптимизация)

JS событие .on(“click”) в паре с .filter .attr (оптимизация)

Есть код, который добавляет переменную id в URL браузера при клике на кнопку

283