제출 #779094

#제출 시각아이디문제언어결과실행 시간메모리
779094vjudge1Cipele (COCI18_cipele)C++17
27 / 90
1077 ms2004 KiB
#include<bits/stdc++.h> using namespace std; #define lalala ios_base::sync_with_stdio(false);cin.tie(NULL); //#define endl "\n" #define int long long int #define pb push_back signed main(){ lalala; int n,m;cin>>n>>m; int sa[n],sol[m]; for(int i=0;i<n;i++)cin>>sa[i]; for(int i=0;i<m;i++)cin>>sol[i]; sort(sa,sa+n); sort(sol,sol+m); if(n==m){ int mx=0; for(int i=0;i<n;i++)mx=max(mx,abs(sa[i]-sol[i])); cout<<mx<<endl; return 0; } if(n<m){ int mn=0; int l=0,r=m-n; while(l<=r){ int mid=(l+r)/2; int mx=0,mx2=-1,mx1=-1; for(int i=mid;i<n+mid;i++){ mx=max(mx,abs(sa[i-mid]-sol[i])); } if(mid!=0){ for(int i=mid-1;i<n+mid-1;i++){ mx1=max(mx1,abs(sa[i-mid+1]-sol[i])); } } if(mid!=m-n){ for(int i=mid+1;i<n+mid+1;i++){ mx2=max(mx2,abs(sa[i-mid-1]-sol[i])); } } if(mx1==-1){ if(mx<=mx2){ l=mid;break; } else{ l=mid+1; } continue; } if(mx2==-1){ if(mx<=mx1){ l=mid;break; } else r=mid-1; continue; } l=mid-1;r=mid+1; if(mx1<mx)r=mid-1; if(mx>mx2)l=mid+1; } for(int i=l;i<n+l;i++){ mn=max(mn,abs(sa[i-l]-sol[i])); } cout<<mn<<endl; return 0; } int mn=0; int l=0,r=n-m; while(l<=r){ int mid=(l+r)/2; int mx=0,mx2=-1,mx1=-1; for(int i=mid;i<m+mid;i++){ mx=max(mx,abs(sa[i]-sol[i-mid])); } if(mid!=0){ for(int i=mid-1;i<m+mid-1;i++){ mx1=max(mx1,abs(sa[i]-sol[i-mid+1])); } } if(mid!=n-m){ for(int i=mid+1;i<m+mid+1;i++){ mx2=max(mx2,abs(sa[i]-sol[i-mid-1])); } } if(mx1==-1){ if(mx<=mx2){ l=mid;break; } else{ l=mid+1; } continue; } if(mx2==-1){ if(mx<=mx1){ l=mid;break; } else r=mid-1; continue; } l=mid-1;r=mid+1; if(mx1<mx)r=mid-1; if(mx>mx2)l=mid+1; } for(int i=l;i<m+l;i++){ mn=max(mn,abs(sa[i]-sol[i-l])); } cout<<mn<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...