Submission #221875

#TimeUsernameProblemLanguageResultExecution timeMemory
221875MKopchevBuilding Bridges (CEOI17_building)C++14
30 / 100
3072 ms4108 KiB
#include<bits/stdc++.h> using namespace std; const int nmax=1e5+42; int n; long long h[nmax],w[nmax],pref[nmax]; long long dp[nmax]; int main() { scanf("%i",&n); for(int i=1;i<=n;i++)scanf("%lld",&h[i]); for(int i=1;i<=n;i++)scanf("%lld",&w[i]); for(int i=1;i<=n;i++)pref[i]=pref[i-1]+w[i]; dp[1]=0; for(int j=2;j<=n;j++) { dp[j]=1e18; for(int i=j-1;i>=1;i--) { long long s_1=h[j]*h[j]+pref[j-1]; long long s_2=h[i]*h[i]-pref[i]+dp[i]; long long s_3=-2*h[i]*h[j]; dp[j]=min(dp[j],s_1+s_2+s_3); } //cout<<j<<" -> "<<dp[j]<<endl; } printf("%lld\n",dp[n]); return 0; }

Compilation message (stderr)

building.cpp: In function 'int main()':
building.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i",&n);
     ~~~~~^~~~~~~~~
building.cpp:15:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1;i<=n;i++)scanf("%lld",&h[i]);
                          ~~~~~^~~~~~~~~~~~~~
building.cpp:17:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1;i<=n;i++)scanf("%lld",&w[i]);
                          ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...