Submission #1189851

#TimeUsernameProblemLanguageResultExecution timeMemory
1189851UnforgettableplMeasures (CEOI22_measures)C++20
10 / 100
1594 ms6664 KiB
#include <bits/stdc++.h> using namespace std; #define int __int128 int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N,M,D; { long long a,b,c; cin >> a >> b >> c; N=a; M=b; D=c; } D*=2; vector<int> arr(N); for(int&i:arr){long long a;cin>>a;i=a;i*=2;} auto solve = [&](int x){ arr.emplace_back(2*x); if(arr.size()==1)return (int)0; 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,(int)0)); 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; }; cout << fixed; for(int i=1;i<=M;i++){ int x;long long a;cin>>a;x=a; long long ans = solve(x); if(ans&1)cout<<ans/2<<".5"<<' '; else cout<<ans/2<<' '; } 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...