제출 #1192895

#제출 시각아이디문제언어결과실행 시간메모리
1192895enzyBali Sculptures (APIO15_sculpture)C++20
16 / 100
18 ms4424 KiB
#include<bits/stdc++.h> using namespace std; const int maxn=51; const int inf=1e9+7; int v[maxn], dp[maxn][1001][21]; // dp[id][val][qtd] se eu consigo formar o valor val, com partição dos id primeiros caras, usando qtd grupos // obs: se a=1, ent posso querer minimizar o numero de partições signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n, a, b; cin >> n >> a >> b; for(int i=1;i<=n;i++) cin >> v[i]; dp[0][0][0]=1; int resp=inf; for(int i=1;i<=n;i++){ int sum=0; for(int j=i-1;j>=0;j--){ sum+=v[j+1]; for(int val=0;(val|sum)<=1000;val++){ for(int x=0;x<20;x++){ dp[i][(val|sum)][x+1]=max(dp[i][(val|sum)][x+1],dp[j][val][x]); if(i==n&&a<=x+1&&x+1<=b&&dp[i][(val|sum)][x+1]) resp=min(resp,(val|sum)); } } } } cout << resp << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...