Submission #855766

#TimeUsernameProblemLanguageResultExecution timeMemory
855766vjudge1Cipele (COCI18_cipele)C++17
18 / 90
32 ms3032 KiB
#include <bits/stdc++.h> using namespace std; #pragma GCC optimize("Ofast,O3,unroll-loops") #define int long long #define vi vector<int> #define vvi vector<vi> #define pii pair<int, int> #define vpi vector<pii> #define vvpi vector<vpi> #define vb vector<bool> #define vvb vector<vb> #define endl "\n" #define sp << " " << #define F(i, s, n) for(int i = s; i < n; i++) #define pb push_back #define fi first #define se second int mod = 998244353; int inf = LLONG_MAX >> 3; int mult(int x, int y) { return (x%mod)*(y%mod)%mod; } void solve() { int n, m; cin >> n >> m; vi a(n), b(m); F(i, 0, n) cin >> a[i]; F(i, 0, m) cin >> b[i]; if(n > m) { swap(a, b); swap(n, m); } sort(a.begin(), a.end()); sort(b.begin(), b.end()); vi selected; stack<int> s; int st = 0; int bg = 0; F(i, 0, n) { auto p = lower_bound(next(b.begin(), bg), b.end(), a[i]); if(p == b.end()) p--; if(p != next(b.begin(), bg) && abs(*(p-1) - a[i]) < abs(*p - a[i])) { p--; } if(!s.empty() && abs(s.top() - a[i]) < abs(*p - a[i])) { //cout << "dasda" << endl; selected.pb(s.top()); s.pop(); } else { selected.pb(*p); bg = p - b.begin() + 1; F(j, st, bg-1) s.push(b[j]); st = bg; } } sort(selected.begin(), selected.end()); //F(i, 0, n) cout << selected[i] << endl; int ans = 0; F(i, 0, n) { ans = max(ans, abs(a[i] - selected[i])); } cout << ans; } void setIO() { ios::sync_with_stdio(0); cin.tie(0); #ifdef Local freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); #endif } signed main() { setIO(); int t = 1; //cin >> t; while(t--) solve(); }
#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...