답안 #531571

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
531571 2022-03-01T04:19:34 Z ammar2000 Cipele (COCI18_cipele) C++17
90 / 90
41 ms 3652 KB
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define F first
#define S second
#define coy cout<<"YES\n"
#define con cout<<"NO\n"
#define co1 cout<<"-1\n"
#define sc(x) scanf("%lld",&x)
#define all(x) x.begin(),x.end()
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
const int SI=3e5+7;
int dx[] = {1 , -1 , 0 , 0};
int dy[] = {0 , 0 , 1 , -1};
int MOD=1e9+7;
ll INF=MOD;
ll n,m,a[SI],b[SI];
bool ok(ll x)
{
    ll f=0,s=0;
    while (f<n&&s<m)
    {
    //    if (x==0)
// /         cout <<f<<" "<<s<<" "<<a[f]<<" "<<b[s]<<" "<<abs(a[f]-b[s])<<"\n";
        if (abs(a[f]-b[s])<=x)
            f++,s++;
        else if (n<m)
        s++;
        else f++;
    }
    if (n<m)
        return f==n;
    else return s==m;
}
int main()
{
   fast
   cin>>n>>m;
   for (int i=0;i<n;i++)
    cin>>a[i];
   for (int i=0;i<m;i++)
    cin>>b[i];
    sort (a,a+n);
    sort (b,b+m);
    //cout <<"\n";
    ll l=-2,r=INF;
    while (l+1<r)
    {
        ll m=(l+r)/2;
    //    cout <<m<<"\n";
        if (ok(m))
            r=m;
        else l=m;
    }
    cout <<r<<"\n";
   // use scanf not cin
   return 0;
}

Compilation message

cipele.cpp: In function 'int main()':
cipele.cpp:42:4: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   42 |    for (int i=0;i<m;i++)
      |    ^~~
cipele.cpp:44:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   44 |     sort (a,a+n);
      |     ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 31 ms 3416 KB Output is correct
2 Correct 37 ms 3596 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 36 ms 3592 KB Output is correct
2 Correct 36 ms 3652 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 2 ms 460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 2 ms 452 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 2 ms 460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 2 ms 460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 2 ms 460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 41 ms 2984 KB Output is correct
2 Correct 23 ms 2232 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 3348 KB Output is correct
2 Correct 19 ms 2472 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 2844 KB Output is correct
2 Correct 34 ms 3160 KB Output is correct