CCCPaste

Untitled

#include 
#include 
#include 
using namespace std;


int main()
{
    int k, n;
    cin >> k >> n;
    
    int a[n], b[n];
    for(int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for(int i = 0; i < n; i++) {
        cin >> b[i];
    }
    
    sort(a, a + n);
    sort(b, b + n);
    
    long long res = 0;
    for(int i = 0; i < n; i++) {
        if(a[i] >= k) {
            res += n;
        }
        else {
            int x = k - a[i];
            int L = 0, R = n - 1;
            int idx = -1;
            while(L <= R) {
                int middle = (L + R) / 2;
                if(b[middle] < x) {
                    L = middle + 1;
                }
                else {
                    R = middle - 1;
                    idx = middle;
                }
            }
            if(idx != -1 and b[idx] >= x) {
                res += n - idx;
                
            }
        }
    }
    cout << res << endl;
    return 0;
}