Code in ra các phần tử có mặt trong ba mảng bị sai

Em có làm bài này gửi lên nhưng bộ test chấm sai, mà k biết sai ở trường hợp nào @@ nhờ các cao nhân chỉ bảo ạ.

#include<bits/stdc++.h>
using namespace std;
int main(){
    int t,n1,n2,n3; cin >> t;
    while (t--){
        cin >> n1 >> n2 >> n3;
        set<long long> ans;
        long long a[n1],b[n2],c[n3];
        for (int i=0;i<n1;i++) cin >> a[i];
        for (int i=0;i<n2;i++) cin >> b[i];
        for (int i=0;i<n3;i++) cin >> c[i];
        int i=0,j=0,k=0;
        while (i<n1 && j<n2 && k<n3){
            while (b[j]<a[i]) j++;
            while (c[k]<a[i]) k++;
            if (a[i]==b[j] && a[i]==c[k]) ans.insert(a[i]);
            i++;
        }
        if (ans.size()==0) cout << -1;
        else for (long long it: ans) cout << it << " ";
        cout << endl;
    }
}

Chỗ này không cần dùng đến set. vector là đủ rồi (do cả 3 mảng đều sắp xếp tăng).

C++ không có trò này. Hãy dùng cấp phát động hoặc vector.

1 Like

Thông báo cụ thể được không?
Sai là sai về vấn đề gì? LTE, đáp án sai, quá bộ nhớ,…

1 Like

là WA: Wrong Answer (Kết quả sai) bác ơi

Cảnh báo: warning: range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11|

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