Submission #681505

#TimeUsernameProblemLanguageResultExecution timeMemory
681505Vladth11Cipele (COCI18_cipele)C++14
0 / 90
1094 ms992 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") #define debug(x) cerr << #x << " " << x << "\n" #define debugs(x) cerr << #x << " " << x << " " using namespace std; typedef pair <int, int> pii; typedef long long ll; const int NMAX = 100001; const int VMAX = 41; const int INF = 1e9; const int MOD = 1000000009; const int BLOCK = 318; const int base = 31; const int nrbits = 21; int a[NMAX], b[NMAX]; int n, m; int f(int poz) { if(poz + m - 1 > n) return 1e9; int maxim = 0; for(int i = 1; i <= m; i++){ maxim = max(maxim, abs(a[i + poz - 1] - b[i])); } return maxim; } int ternary(int st, int dr){ if(st == dr - 1) return min({f(st), f(dr)}); int mid1 = st + (dr - st) / 3; int mid2 = dr - (dr - st) / 3; int f1 = f(mid1); int f2 = f(mid2); if(f1 < f2) return ternary(st, f2 - 1); return ternary(f1 + 1, dr); } int main() { #ifdef HOME ifstream cin(".in"); ofstream cout(".out"); #endif // HOME ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int i; cin >> n >> m; for(i = 1; i <= n; i++) cin >> a[i]; for(i = 1; i <= m; i++) cin >> b[i]; sort(a + 1, a + n + 1); sort(b + 1, b + m + 1); if(m > n){ for(i = 1; i <= m; i++){ swap(a[i], b[i]); } swap(n, m); } cout << ternary(1, n - m + 1); 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...