Я хотел решить задачу под названием «Массивы переменного размера» на Hackerrank, и я хотел сделать это, используя векторы.Код, который я написал, не работает должным образом, и я попытался отладить его, но ничего не получилось.Я буду благодарен за вот этот вызов:
Рассмотрим массив из n элементов, где каждый индекс i в массиве содержит ссылку K i на массивцелые числа (где значение K i варьируется от массива к массиву).См. Пояснение в разделе ниже для диаграммы.
Учитывая, вы должны ответить на q запросов.Каждый запрос имеет формат ij, где i обозначает индекс в массиве, а j обозначает индекс в массиве, расположенном в [i].Для каждого запроса найдите и распечатайте значение элемента j в массиве в месте на [i] новой строке.
Формат ввода
Первая строка содержит два разделенных пробелом целых числа, обозначающихсоответствующие значения n (количество массивов переменной длины) и q (количество запросов).Каждая строка последующих строк содержит разделенную пробелами последовательность в формате ka [i] 0 a [i] 1… a [i] k-1, описывающую массив k-элементов, расположенный в a [i].Каждая из q последующих строк содержит два разделенных пробелом целых числа, описывающих соответствующие значения i (индекс в массиве a) и j (индекс в массиве, на который ссылается a [i]) для запроса.
Пример ввода2 23 1 5 45 1 2 8 9 30 11 3
Пример вывода59
Итак, вот мой код для этого (я оставлю это с отсеками для отладки):
#include <iostream>
#include <vector>
using std::cin;
using std::cout;
using std::vector;
using std::endl;
int main() {
int numberOfQueries = 0;
int numberOfArrays = 0;
cout << "Enter Nr.Of Arrays followed by Nr.Of Queries:";
cin >> numberOfArrays >> numberOfQueries;
cout << "Nr.Of Arrays: " << numberOfArrays << endl;
cout << "Nr.Of Queries: " << numberOfQueries << endl;
vector<vector<int>>multiArray;
cout << "MultiArray size: " << multiArray.size();
while (numberOfArrays != 0) {
int vsize = 0;
cout << "\nenter array starting by its size: ";
cin >> vsize;
cout << " Size entered is: " << vsize << endl;
vector<int> vec1(vsize);
cout << "Array Size is: " << vec1.size() << endl;
//int element = 0;
while (cin >> vsize) {
cout << "Element is: " << vsize << "\n";
vec1.push_back(vsize);
};
multiArray.push_back(vec1);
numberOfArrays--;
cout << "MultiArray size: " << multiArray.size();
cout << "Nr.Of Arrays: " << numberOfArrays << endl;
};
while (numberOfQueries > 0) {
int i = 0, j = 0;
cout << "\nQuery indexes:";
cin >> i >> j;
cout << multiArray[i][j];
numberOfQueries--;
}
}