제출 #146958

#제출 시각아이디문제언어결과실행 시간메모리
146958albino_ojuzCipele (COCI18_cipele)C++14
9 / 90
1081 ms1228 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5+5; int n,m; int niz1[N],niz2[N]; int maks; int main () { cin >> n >> m; for (int i = 0;i < n;i++) { cin >> niz1[i]; if (niz1[i] > maks) { maks = niz1[i]; } } for (int i = 0;i < m;i++) { cin >> niz2[i]; if (niz2[i] > maks) { maks = niz2[i]; } } sort(niz1,niz1 + n); sort(niz2,niz2 + m); if (n > m) { for (int i = 0;i < n;i++) { swap(niz1[i],niz2[i]); } swap(n,m); } /* for (int i = 0;i < n;i++) { cout << niz1[i] << " "; }cout << endl; for (int i = 0;i < m;i++) { cout << niz2[i] << " "; }cout << endl; */ // prvi je manji prvi je manji prvi je manji prvi je manji int cnt = 0; int lo = 0, hi = maks; while (lo != hi) { cnt++; if (cnt > 1000) { break; } int zas = 0; int mid = (lo + hi) / 2; // cout << mid << endl; for (int i = 0;i < n;i++) { int plus = 0; while(abs(niz1[i] - niz2[i + plus]) > mid) { plus++; if (i + plus >= m) { zas = 1; break; } } if (zas == 1) { break; } for (int ind = i;ind < n - plus;ind++) {//cout << ind << " ind|plus " << plus <<endl; if (abs(niz1[ind] - niz2[ind + plus]) > mid) {//cout << "umre na " << ind << " zas " << zas << endl; zas = 1; break; } } } if (zas == 0) { hi = mid; } else { lo = mid + 1; } } cout << lo <<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...