10009 | 2024. 03. 23 23:21:02 | 111 | Jancsi és Juliska kitalálós játéka | cpp17 | Elfogadva 100/100 | 994ms | 6764 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
int N,F[300],C[300][300],A[300][300];
int solve(int l,int r){
if(l>=r){
return 0;
}
if(A[l][r]!=-1){
return A[l][r];
}
int a=INT_MAX;
for(int i=l;i<=r;i++){
for(int j=i;j<=r;j++){
if(i==l&&j==r){
continue;
}
int xxx=solve(j+1,r);
int xx=max({solve(l,i-1),solve(i,j)});
int x=C[i][j]+max({xx,xxx});
if(x<a){
a=x;
}
if(xxx<=xx)break;
}
}
A[l][r]=a;
return a;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>N;
for(int i=0;i<N;i++){
cin>>F[i];
}
for(int i=0;i<N;i++){
C[i][i]=F[i];
for(int j=i+1;j<N;j++){
C[i][j]=max(C[i][j-1],F[j]);
}
}
for(int i=0;i<N;i++){
for(int j=i;j<N;j++){
A[i][j]=-1;
}
}
cout<<solve(0,N-1)<<'\n';
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 100/100 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1936 KiB | |||
2 | Elfogadva | 0/0 | 994ms | 5044 KiB | |||
3 | Elfogadva | 4/4 | 3ms | 2552 KiB | |||
4 | Elfogadva | 5/5 | 3ms | 2772 KiB | |||
5 | Elfogadva | 5/5 | 3ms | 2912 KiB | |||
6 | Elfogadva | 5/5 | 3ms | 2956 KiB | |||
7 | Elfogadva | 5/5 | 10ms | 3756 KiB | |||
8 | Elfogadva | 5/5 | 9ms | 3944 KiB | |||
9 | Elfogadva | 5/5 | 32ms | 4216 KiB | |||
10 | Elfogadva | 5/5 | 37ms | 4268 KiB | |||
11 | Elfogadva | 5/5 | 30ms | 4648 KiB | |||
12 | Elfogadva | 5/5 | 67ms | 5016 KiB | |||
13 | Elfogadva | 5/5 | 119ms | 5368 KiB | |||
14 | Elfogadva | 5/5 | 150ms | 5652 KiB | |||
15 | Elfogadva | 5/5 | 330ms | 5872 KiB | |||
16 | Elfogadva | 5/5 | 547ms | 6132 KiB | |||
17 | Elfogadva | 5/5 | 252ms | 6228 KiB | |||
18 | Elfogadva | 5/5 | 275ms | 6280 KiB | |||
19 | Elfogadva | 5/5 | 754ms | 6456 KiB | |||
20 | Elfogadva | 5/5 | 330ms | 6752 KiB | |||
21 | Elfogadva | 5/5 | 839ms | 6704 KiB | |||
22 | Elfogadva | 6/6 | 660ms | 6764 KiB |