Thứ Tư, 27 tháng 4, 2022

FLOWER1044 C++

#include <bits/stdc++.h>

using namespace std;

struct pt{
    int gt, tt;
};
int n, m, s;
int a[1000010];
pt b[1000010];

void nhap(){
    scanf("%d%d%d", &n, &m, &s);
    for(int i = 1; i <= n; i++){
        scanf("%d", &a[i]);
    }
    for(int i = 1; i <= m; i++){
        scanf("%d", &b[i].gt);
        b[i].tt = i;
    }
}

bool ss(pt x, pt y){
    if (x.gt < y.gt) return true;
    return false;
}



int bs(int l, int r, int p)
{

    int mid, res = 0;
    while (l <= r){
        mid = (l+r)/2;
        if (b[mid].gt <= p)
        {
            res = mid;
            l = mid+1;
        }
        else r = mid - 1;
    }
    return res;
}

void xuly(){
    int imax = 0, jmax = 0, maxx = 0;
    sort(b+1, b+1+m, ss);
    for(int i = 1; i <= n; i++)
    {
        int rs = bs(1, m, s-a[i]);
        if (rs != 0)
        {
            if (b[rs].gt + a[i] > maxx)
            {
                maxx = b[rs].gt + a[i];
                imax = i;
                jmax = rs;
            }
        }
    }
    cout << imax << " " << b[jmax].tt << endl;
}

int main(){
    freopen("FLOWERS1044.INP", "r", stdin);
    freopen("FLOWERS1044.OUT", "w", stdout);
    nhap();
    xuly();
}

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.