Submission #426704

# Submission time Handle Problem Language Result Execution time Memory
426704 2021-06-14T09:19:37 Z oleh1421 Building Bridges (CEOI17_building) C++17
0 / 100
188 ms 131072 KB
//#pragma GCC optimize("Ofast")
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
typedef pair<ll,ll> line;

const int N=6000010;
const ll mod=1000000007;
const ll inf=1e15;
ll h[N],w[N];
ll dp[N];
ll a[N],b[N];
line t[N];
ll f(line cur,ll x){
    return cur.first*x+cur.second;
}
void upd(int v,int l,int r,line cur){
//    cout<<v<<" "<<l<<" "<<r<<endl;

    ll mid=(l+r)/2;
    if (f(t[v],mid)>f(cur,mid)) swap(t[v],cur);
    if (cur.second==inf) return;
    if (f(t[v],l)>f(cur,l)){
        upd(v+v,l,mid,cur);
    } else {
        upd(v+v+1,mid+1,r,cur);
    }
}
ll get(int v,int l,int r,int pos){
//    cout<<v<<" "<<l<<" "<<r<<endl;
    if (l==r) return f(t[v],pos);
    int mid=(l+r)/2;
    if (pos<=mid) return min(f(t[v],pos),get(v+v,l,mid,pos));
    else return min(f(t[v],pos),get(v+v+1,mid+1,r,pos));
}
int main(){
    for (int i=0;i<N;i++) t[i]={1e9,inf};
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;cin>>n;
    for (int i=1;i<=n;i++) cin>>h[i];
    for (int i=1;i<=n;i++) cin>>w[i],w[i]+=w[i-1];
    dp[1]=0;
    a[1]=h[1]*h[1]-w[1]+dp[1];
    b[1]=-2*h[1];
    upd(1,0,1e6,{b[1],a[1]});
//    cout<<"Line "<<b[1]<<" "<<a[1]<<endl;
    for (int i=2;i<=n;i++){
        dp[i]=min(inf,get(1,0,1e6,h[i]));
//        for (int j=1;j<i;j++){
//            dp[i]=min(dp[i],a[j]+b[j]*h[i]);
//        }
        dp[i]+=h[i]*h[i]+w[i-1];
//        cout<<i<<" "<<dp[i]<<endl;
        a[i]=h[i]*h[i]+dp[i]-w[i];
        b[i]=-2*h[i];
        upd(1,0,1e6,{b[i],a[i]});
//        cout<<"Line "<<b[i]<<" "<<a[i]<<endl;
    }
    cout<<dp[n]<<endl;
    return 0;
}
/**
6
3 8 7 1 6 6
0 -1 9 1 2 0
**/
# Verdict Execution time Memory Grader output
1 Correct 43 ms 94148 KB Output is correct
2 Correct 43 ms 94212 KB Output is correct
3 Runtime error 175 ms 131072 KB Execution killed with signal 11
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 188 ms 131072 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 43 ms 94148 KB Output is correct
2 Correct 43 ms 94212 KB Output is correct
3 Runtime error 175 ms 131072 KB Execution killed with signal 11
4 Halted 0 ms 0 KB -