제출 #718834

#제출 시각아이디문제언어결과실행 시간메모리
718834Ahmed57Lightning Conductor (POI11_pio)C++14
27 / 100
382 ms15948 KiB
#include <bits/stdc++.h> using namespace std; long long dp[500001]; long long arr[500001]; void dc(int l,int r,int optl,int optr){ if(l>r)return ; int mid = (l+r)/2; long long best = optl; for(int cut = optl;cut<=min(mid,optr);cut++){ if(arr[best]+ceil(sqrt(mid-best))<arr[cut]+ceil(sqrt(mid-cut))){ best = cut; } } dp[mid]=max(dp[mid],arr[best]+(long long)ceil(sqrt(mid-best))); int opt = best; dc(l,mid-1,optl,opt); dc(mid+1,r,opt,optr); } int main(){ //ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n; cin>>n; for(int i = 1;i<=n;i++){ cin>>arr[i]; } for(int i = 0;i<=n;i++)dp[i] = 0; dc(1,n,0,n-1); reverse(arr+1,arr+n+1); reverse(dp+1,dp+n+1); dc(1,n,0,n-1); reverse(dp+1,dp+n+1); reverse(arr+1,arr+n+1); for(int i = 1;i<=n;i++){ cout<<dp[i]-arr[i]<<"\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...
#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...