제출 #147086

#제출 시각아이디문제언어결과실행 시간메모리
147086albino_ojuzCipele (COCI18_cipele)C++14
90 / 90
161 ms3704 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5+5; int n,m; int mini,maks; long long niz1[N],niz2[N]; bool f(int mid) { int zas = 0; int pom = 0,ad = 0; for (int i = 0;i < n;i++) { for (int j = i + ad;j < m;j++) { if (abs(niz1[i] - niz2[j]) <= mid) { //uspio sam uparit break; } if (j == m - 1) {//nisam ga naso uopce zas = 1; } pom++; } ad = pom; } if (ad > m - n) return false; if (zas == 1) { return false; } return true; } int main () { cin >> n >> m; for (int i = 0;i < n;i++) { cin >> niz1[i]; if (niz1[i] > maks) { maks = niz1[i]; } if (niz1[i] < mini) { mini = niz1[i]; } } for (int i = 0;i < m;i++) { cin >> niz2[i]; if (niz2[i] > maks) { maks = niz2[i]; } if (niz2[i] < mini) { mini = niz2[i]; } } sort(niz1,niz1 + n); sort(niz2,niz2 + m); // prvi je manji prvi je manji prvi je manji if (n > m) { for (int i = 0;i < n;i++) { swap(niz1[i],niz2[i]); } swap(n,m); } long long lo = 0, hi = maks; while (lo != hi) { long long mid = (lo + hi) / 2; if (f(mid)) { hi = mid; } else { lo = mid + 1; } } cout << lo << endl; /*for (int i = 17266842;i < 17276962;i++) { if (f(i) != f(i + 1)) { cout << i << 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...