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 !
Nhờ mọi người giúp đỡ 1 challenge trên hackerrank
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