01/10/2018, 09:55

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

HackerRank

Variable Sized Arrays | HackerRank

Find the element described in the query for integer sequences.

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 !

Nguyễn Duy Hùng viết 12:05 ngày 01/10/2018

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()
Long Dragon viết 12:01 ngày 01/10/2018

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

Bài liên quan
0