제출 #1189820

#제출 시각아이디문제언어결과실행 시간메모리
1189820UnforgettableplMeasures (CEOI22_measures)C++20
0 / 100
1592 ms584 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; }; for(int i=1;i<=M;i++){ int x;long long a;cin>>a;x=a; 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...