Submission #819341

# Submission time Handle Problem Language Result Execution time Memory
819341 2023-08-10T09:32:53 Z vjudge1 Cipele (COCI18_cipele) C++17
18 / 90
135 ms 14352 KB
#include<bits/stdc++.h>
#include<math.h>

#define _USE_MATH_DEFINES

using namespace std;

/**struct node
{
    long long idx;
    long long dis;
    node(){}
    node(long long _idx,long long _dis)
    {
        idx=_idx;
        dis=_dis;
    }
    bool operator<(const node &tmp)const{
    return dis>tmp.dis;
    }
};**/

const long long maxn=1e5+10;
const long long mod=1e9+7;

int main()
{
    long long n,m;
    cin>>n>>m;
    long long L[n];
    long long R[m];
    map<long long,long long>pl;
    map<long long,long long>pr;
    for(long long i=0;i<n;i++)
    {
        cin>>L[i];
        pl[L[i]]++;
    }
    for(long long j=0;j<m;j++)
    {
        cin>>R[j];
        pr[R[j]]++;
    }
    sort(L,L+n);
    sort(R,R+m);
    if(n==m)
    {
        long long mx=0;
        for(long long i=0;i<n;i++)
        {
            mx=max(mx, abs(L[i]-R[i]));
        }
        cout<<mx<<endl;
    }
    else
    {
        if(n<m)
        {
            long long j=-1;
            long long ans=0;
            for(long long i=0;i<n;i++)
            {
                long long raz=2e9;
                while(j+1<m-(n-i-1) && abs(L[i]-R[j+1])<=raz)
                {
                    raz=abs(L[i]-R[j+1]);
                    j++;
                    if(raz==0 && pl[L[i]]>1)
                    {
                        pl[L[i]]--;
                        break;
                    }
                }
                ///cout<<j<<" ";
                ans=max(ans, raz);
            }
            cout<<ans<<endl;
        }
        else
        {
            long long j=-1;
            long long ans=0;
            for(long long i=0;i<m;i++)
            {
                long long raz=2e9;
                while(j+1<n-(m-i-1) && abs(L[j+1]-R[i])<=raz)
                {
                    raz=abs(L[j+1]-R[i]);
                    j++;
                    if(raz==0 && pr[R[i]]>1)
                    {
                        pr[R[i]]--;
                        break;
                    }
                }
                ans=max(ans, raz);
            }
            cout<<ans<<endl;
        }
    }
    return 0;
}


/*5 5
7 6 1 2 10
9 11 6 3 12
*/
# Verdict Execution time Memory Grader output
1 Correct 84 ms 14352 KB Output is correct
2 Correct 132 ms 14268 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 135 ms 14312 KB Output is correct
2 Correct 124 ms 14284 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 596 KB Output is correct
2 Incorrect 6 ms 980 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 596 KB Output is correct
2 Incorrect 5 ms 920 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 852 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 852 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 868 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 100 ms 11528 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 113 ms 12840 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 115 ms 11360 KB Output isn't correct
2 Halted 0 ms 0 KB -