제출 #819341

#제출 시각아이디문제언어결과실행 시간메모리
819341vjudge1Cipele (COCI18_cipele)C++17
18 / 90
135 ms14352 KiB
#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 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...