Submission #1154142

#TimeUsernameProblemLanguageResultExecution timeMemory
1154142AlgorithmWarriorJust Long Neckties (JOI20_ho_t1)C++20
100 / 100
135 ms7116 KiB
#include <bits/stdc++.h>
#define MAX 200005

using namespace std;

struct str
{
    int val;
    int poz;
}a[MAX];
int b[MAX],dif1[MAX],dif2[MAX],rasp[MAX];

bool crt(str a,str b)
{
    return a.val<b.val;
}

int main()
{
    int n;
    cin>>n;
    int i;
    for(i=1;i<=n+1;++i)
    {
        cin>>a[i].val;
        a[i].poz=i;
    }
    for(i=1;i<=n;++i)
        cin>>b[i];
    sort(a+1,a+n+2,crt);
    sort(b+1,b+n+1);
    for(i=1;i<=n;++i)
        dif1[i]=a[i].val-b[i];
    for(i=1;i<=n;++i)
        dif2[i]=a[i+1].val-b[i];
    for(i=1;i<=n;++i)
        dif1[i]=max(dif1[i],dif1[i-1]);
    for(i=n;i;--i)
        dif2[i]=max(dif2[i],dif2[i+1]);
    for(i=1;i<=n+1;++i)
        rasp[a[i].poz]=max(dif1[i-1],dif2[i]);
    for(i=1;i<=n+1;++i)
        cout<<rasp[i]<<' ';
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...