Submission #170778

#TimeUsernameProblemLanguageResultExecution timeMemory
170778juggernautK blocks (IZhO14_blocks)C++14
53 / 100
3 ms760 KiB
//Just try and the idea will come! #include<bits/stdc++.h> #define int long long int using namespace std; int n,k,i,a[101],dp[101][101],j,l,sp[101][7],logs[101]; int get(int l,int r){ int len=logs[r-l+1]; return max(sp[l][len],sp[r-(1ll<<len)+1][len]); } void calc(int k,int n){ dp[n][k]=1e15; for(int i=k;i<=n;i++)dp[n][k]=min(dp[n][k],dp[i-1][k-1]+get(i,n)); } main(){ for(i=2;i<101;i++)logs[i]=logs[i/2]+1; scanf("%lld%lld",&n,&k); for(i=1;i<=n;i++)scanf("%lld",&a[i]),dp[i][1]=max(dp[i-1][1],a[i]),sp[i][0]=a[i]; for(j=1;j<7;j++) for(i=1;i+(1ll<<j)-1<=n;i++)sp[i][j]=max(sp[i][j-1],sp[i+(1ll<<(j-1))][j-1]); for(j=2;j<=k;j++) for(i=j;i<=n;i++)calc(j,i); cout<<dp[n][k]; }

Compilation message (stderr)

blocks.cpp:14:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
blocks.cpp: In function 'int main()':
blocks.cpp:16:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%lld%lld",&n,&k);
     ~~~~~^~~~~~~~~~~~~~~~~~
blocks.cpp:17:71: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(i=1;i<=n;i++)scanf("%lld",&a[i]),dp[i][1]=max(dp[i-1][1],a[i]),sp[i][0]=a[i];
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...