Submission #1189812

#TimeUsernameProblemLanguageResultExecution timeMemory
1189812UnforgettableplMeasures (CEOI22_measures)C++20
0 / 100
1592 ms600 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N,M,D; cin >> N >> M >> D;D*=2; vector<int> arr(N); for(int&i:arr){cin>>i;i*=2;} auto solve = [&](int x){ arr.emplace_back(2*x); if(arr.size()==1)return 0ll; sort(arr.begin(),arr.end()); auto poss = [&](int amt){ vector<int> C(arr.size()); for(int i=1;i<arr.size();i++)C[i]=arr[i]-arr[i-1]; C[1]+=amt; C.back()+=amt; bool works = true; for(int i=1;i<arr.size();i++){ if(i!=1){ int L = min(amt,max(C[i-1]-D,0ll)); C[i]+=L; C[i-1]-=L; } if(i!=arr.size()-1 and C[i]<D){ int L = min(amt,D-C[i]); C[i]+=L; C[i+1]-=L; } if(C[i]<D)works=false; } return works; }; int ans = -1; for(int jump=(1ll<<50);jump;jump/=2){ if(!poss(ans+jump))ans+=jump; } return ++ans; }; for(int i=1;i<=M;i++){ int x;cin>>x; long double ans = solve(x); cout << ans/2.0 << ' '; } cout << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...