Submission #93983

#TimeUsernameProblemLanguageResultExecution timeMemory
93983kjain_1810K blocks (IZhO14_blocks)C++17
53 / 100
3 ms380 KiB
#include <bits/stdc++.h> #define pb push_back #define f first #define s second #define ind(a) scanf("%d", &a) #define inlld(a) scanf("%lld", &a) #define ind2(a, b) scanf("%d%d", &a, &b) #define inlld2(a, b) scanf("%lld%lld", &a, &b) #define ind3(a, b, c) scanf("%d%d%d", &a, &b, &c) #define inlld3(a, b, c) scanf("%lld%lld%lld", &a, &b, &c) using namespace std; const int N=105; const int MOD=1e9+7; typedef long long ll; typedef long double ld; ll n, k, arr[N], dp[N][N]; ll solve(ll i, ll j) { if(j==0) if(i==n+1) return 0; else return 1e15; if(i==n+1) return 1e15; if(dp[i][j]!=-1) return dp[i][j]; ll ret=1e15; ll maxi=0; for(ll b=i; b<=n; b++) { maxi=max(maxi, arr[b]); ret=min(ret, solve(b+1, j-1)+maxi); } return dp[i][j]=ret; } int main() { inlld2(n, k); for(ll a=1; a<=n; a++) inlld(arr[a]); for(ll j=0; j<=k; j++) for(ll i=n+1; i>=1; i--) { if(j==0) if(i==n+1) dp[i][j]=0; else dp[i][j]=1e15; else if(i==n+1) dp[i][j]=1e15; else { dp[i][j]=1e15; ll maxi=0; for(ll a=i; a<=n; a++) { maxi=max(maxi, arr[a]); dp[i][j]=min(dp[i][j], dp[a+1][j-1]+maxi); } } } printf("%lld\n", dp[1][k]); // memset(dp, -1, sizeof(dp)); // printf("%lld\n", solve(1, k)); return 0; }

Compilation message (stderr)

blocks.cpp: In function 'll solve(ll, ll)':
blocks.cpp:24:7: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
     if(j==0)
       ^
blocks.cpp: In function 'int main()':
blocks.cpp:8:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 #define inlld2(a, b) scanf("%lld%lld", &a, &b)
                      ~~~~~^~~~~~~~~~~~~~~~~~~~
blocks.cpp:45:5: note: in expansion of macro 'inlld2'
     inlld2(n, k);
     ^~~~~~
blocks.cpp:6:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 #define inlld(a) scanf("%lld", &a)
                  ~~~~~^~~~~~~~~~~~
blocks.cpp:47:9: note: in expansion of macro 'inlld'
         inlld(arr[a]);
         ^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...