Nhờ mọi người giúp đỡ 1 challenge trên hackerrank

Mọi người có thể giải thích thêm hay dịch cái đề của challenge trên sang TV đc ko ạ?
Mặc dù e có thể đọc T.A nhưng cái đề trên ko hiểu lắm !

Bạn đọc vào dòng đầu tiên nó sẽ có 2 giá trị là n và q. Thì n nó là số vector bạn cần tạo ra, mỗi vector này có chỉ số i ( kiểu như mảng 2 chiều ) vector<vector<int>> a; còn q là số câu truy vấn.
Như vậy bạn có một vòng for(int i = 0 ; i < n; i++) để đọc vào n vector, mỗi vector có số lượng k phần tử, trong đó k là thằng đầu tiên của dòng đó. Tiếp đến là một vòng for nữa để in ra kết quả.
Cứ mỗi dòng là i j thì i nó cho mình biết a[i] nào đang được tham chiếu còn j là chỉ số của a[i] đó ( tóm lại vẫn là mảng 2 chiều).

pseudo code

đọc vào n,q
Tạo vector<vector<int>> a
for i từ 0 đến n do:
    đọc vào k
    tạo vector t
    for j từ 0 đến k do:
        đọc số vào và push vô t
    push t vô a
for i từ 0 đến q do
    đọc vào i
    đọc vào j
    in ra a[i][j]

nếu biết python =))

def main():
    n, q = map(int, raw_input())
    a = []
    for i in xrange(n):
        k = int(raw_input())
        t = []
        for j in xrange(k):
            t.append(int(raw_input()))
        a.append(t)

    for query in xrange(q):
        x = map(int, raw_input())
        print a[x[0]][x[1]]


if __name__ == '__main__':
    main()
1 Like

OK I solved it !
Here is the code:

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    int n, q, cols, index, val;
    std::cin >> n >> q;
    int **arr = new int*[n];
    for (int i = 0; i < n; ++i) {
        std::cin >> cols;
        arr[i] = new int[cols];
        for (int j = 0; j < cols; ++j) {
            std::cin >> arr[i][j];
        }
    }
    for (int i = 0; i < q; ++i) {
        std::cin >> index >> val;
        std::cout << arr[index][val] << std::endl;
    }
    return 0;
}

And that is the same as editorial in the challenge :smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?