제출 #1130928

#제출 시각아이디문제언어결과실행 시간메모리
1130928Champ_NamanBali Sculptures (APIO15_sculpture)C++17
9 / 100
378 ms327680 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define nl '\n'

vector<int> ldp[101];
vector<int> dp[101];

inline void solve(){
   int n, a, b;
   cin>>n>>a>>b;

   int c[n+1], sum = 0;
   for(int i=1; i<=n; i++){
      cin>>c[i];
      sum += c[i];

      ldp[i].push_back(sum);
   }

   int ans = 1e18;
   if(1 >= a) ans = min(ans, *min_element(ldp[n].begin(), ldp[n].end()));

   for(int k=2; k<=b; k++){
      for(int i=1; i<=n; i++){
         dp[i].clear();
         int sm = 0;
         for(int j=i; j>0; j--){
            sm += c[j];

            for(int x : ldp[j-1]){
               dp[i].push_back(sm | x);
            }
         }
      }

      for(int i=0; i<=n; i++) swap(ldp[i], dp[i]);
      if(k >= a) ans = min(ans, *min_element(ldp[n].begin(), ldp[n].end()));
   }

   cout<<ans;
}

signed main(){
   ios_base::sync_with_stdio(0);
   cin.tie(NULL);cout.tie(NULL);

   int t = 1;
   //cin>>t;
   while(t--) solve();

   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...
#Verdict Execution timeMemoryGrader output
Fetching results...