Untitled
unknown
plain_text
a year ago
1.6 kB
1
Indexable
Never
#include <iostream> #include <vector> #include <algorithm> using namespace std; // Hàm so sánh dùng để sắp xếp mảng Y theo thứ tự tăng dần bool compare(int a, int b) { return a > b; } int countPairs(vector<int>& X, vector<int>& Y) { int n = X.size(); int m = Y.size(); for(int i = 0; i < n;i++){ cout<<X[i]<<" "; } cout<<"xxx"<<endl; // Sắp xếp mảng Y theo thứ tự giảm dần sort(Y.begin(), Y.end(), compare); for(int i = 0; i < m;i++){ cout<<Y[i]<<" "; } cout<<"yyy"<<endl; int count = 0; // Duyệt qua từng phần tử trong mảng X for (int i = 0; i < n; i++) { // Tìm vị trí đầu tiên trong mảng Y mà x^Y[i] > Y[i]^x int idx = upper_bound(Y.begin(), Y.end(), X[i], greater<int>()) - Y.begin(); cout<<X[i]<<" "<<idx<<" "<<m-idx; cout<<endl; // Các phần tử từ idx đến cuối của mảng Y thỏa mãn điều kiện count += m - idx; } return count; } int main() { int t; cin>>t; while(t--){ int n, m; cin >> n >> m; vector<int> X(n); vector<int> Y(m); for (int i = 0; i < n; i++) { cin >> X[i]; } for (int i = 0; i < m; i++) { cin >> Y[i]; } int result = countPairs(X, Y); cout << "So cap (x, y) thoa dieu kien: " << result << endl; } return 0; }