Submission #1192899

#TimeUsernameProblemLanguageResultExecution timeMemory
1192899enzyBali Sculptures (APIO15_sculpture)C++20
21 / 100
9 ms1152 KiB
#include<bits/stdc++.h> using namespace std; const int maxn=101; const int inf=1e9+7; int v[maxn], dp[maxn][2001]; // 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, usar isso p/ fzr a sub3 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]; for(int i=0;i<maxn;i++) for(int j=0;j<=2000;j++) dp[i][j]=inf; dp[0][0]=0; 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)<=2000;val++) dp[i][(val|sum)]=min(dp[i][(val|sum)],dp[j][val]+1); } } for(int i=2000;i>=0;i--) if(a<=dp[n][i]&&dp[n][i]<=b) resp=i; 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...