제출 #1043201

#제출 시각아이디문제언어결과실행 시간메모리
10432010pt1mus23K개의 묶음 (IZhO14_blocks)C++14
53 / 100
1040 ms40032 KiB
#pragma GCC optimize("O3", "inline") #include <bits/stdc++.h> using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); #define ins insert #define pb push_back // #define int long long int #define pii pair<int, int> #define endl '\n' #define drop(x) cout<<(x)<<endl; return; #define all(x) x.begin(),x.end() #define hash z0hashp #define div z0dvp const int mod = 1e9 +7, sze = 1e5 +23, inf = INT_MAX, P = 1453; int dp[sze][101]; int arr[sze]; void opt1z(){ int n,k; cin>>n>>k; for(int i=1;i<=n;i++){ cin>>arr[i]; } memset(dp,0x3f,sizeof dp); dp[0][0]=0; for(int i=1;i<=n;i++){ for(int j=1;j<=k;j++){ int mx = arr[i]; for(int ip=i-1;ip>=0;ip--){ dp[i][j]=min(dp[i][j],dp[ip][j-1] + mx); // cout<<i<<" "<<j<<" "<<ip<<" "<<mx<<endl; mx=max(mx,arr[ip]); } } } drop(dp[n][k]); } signed main() { cin.tie(0)->sync_with_stdio(0); int tt = 1; // cin>>tt; while(tt--){ opt1z(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...