Submission #691534

#TimeUsernameProblemLanguageResultExecution timeMemory
691534fatemetmhrMeasures (CEOI22_measures)C++17
59 / 100
196 ms5068 KiB
// hmmm... na dige chizi baraye goftan namoonde // ~ Be Name Khoda ~ #include <bits/stdc++.h> //#pragma GCC optimize ("Ofast") //#pragma GCC target("avx2") //#pragma GCC optimize("unroll-loops,O3") using namespace std; typedef long long ll; #define pb push_back #define mp make_pair #define all(x) x.begin(), x.end() #define fi first #define se second const int maxn = 1e6 + 10; const int maxn5 = 5e5 + 10; const int maxnt = 1.2e6 + 10; const int maxn3 = 1e3 + 10; const int mod = 1e9 + 7; const ll inf = 1e18; ll d; ll a[maxn5]; inline ll solve(int n){ //cout << "ok " << n << endl; sort(a, a + n); ll lastpos = a[0], tim = 0; for(int i = 1; i < n; i++){ if(a[i] - lastpos >= d) lastpos = max(lastpos + d, a[i] - tim); else if(a[i] + tim - lastpos >= d) lastpos += d; else{ ll need = d - (a[i] - lastpos) - tim; ll x = a[i] + tim; //cout << "here " << x << ' ' << need << ' ' << tim << endl; need /= 2; tim += need; lastpos = x + need; } //cout << i << ' ' << lastpos << ' ' << tim << endl; } return tim; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m >> d; d *= 2; for(int i = 0; i < n; i++){ cin >> a[i]; a[i] *= 2; } sort(a, a + n); ll lastpos, tim; for(int i = 0; i < m; i++){ cin >> a[i + n]; a[i + n] *= 2; ll ans; if(m > 10){ if(i == 0) lastpos = a[0], tim = 0; else{ if(a[i] - lastpos >= d) lastpos = max(lastpos + d, a[i] - tim); else if(a[i] + tim - lastpos >= d) lastpos += d; else{ ll need = d - (a[i] - lastpos) - tim; ll x = a[i] + tim; //cout << "here " << x << ' ' << need << ' ' << tim << endl; need /= 2; tim += need; lastpos = x + need; } } ans = tim; } else ans = solve(i + n + 1); cout << ans / 2 << (ans & 1 ? ".5 " : " "); } cout << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...