Computer >> Máy Tính >  >> Lập trình >> C ++

Mã C ++ để kiểm tra truy vấn tìm tổng bằng 0

Giả sử chúng ta có một mảng A với n phần tử, các phần tử nằm trong khoảng từ -1 đến 1. Và có một mảng cặp khác cho m truy vấn Q như Q [i] =(li, ri). Phản hồi cho truy vấn sẽ là 1 khi các phần tử của mảng a có thể được sắp xếp lại sao cho tổng Q [li] + ... + Q [ri] =0, ngược lại là 0. Chúng ta phải tìm câu trả lời của tất cả các truy vấn.

Vì vậy, nếu đầu vào là A =[-1, 1, 1, 1, -1]; Q =[[1, 1], [2, 3], [3, 5], [2, 5], [1, 5]], thì đầu ra sẽ là [0, 1, 0, 1, 0]

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

 n:=size of Am:=size of Qz:=0 để khởi tạo, i:=0, khi i  n - z, thì:z:=n - z để khởi tạo i:=0, khi i  

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

 #include  using namespace std; void Expl (vector  A, vector > Q) {int n =A.size (); int m =Q.size (); int z =0; for (int a, i =0; i  n - z) z =n - z; for (int i =0; i  A ={-1, 1, 1, 1, -1}; vector > Q ={{1, 1}, {2, 3}, {3, 5}, {2, 5}, {1, 5}}; giải quyết (A, Q);} 

Đầu vào

 {-1, 1, 1, 1, -1}, {{1, 1}, {2, 3}, {3, 5}, {2, 5}, {1, 5}}  

Đầu ra

 1, 0, 1, 0, 1,