제출 #566508

#제출 시각아이디문제언어결과실행 시간메모리
566508ac2huBali Sculptures (APIO15_sculpture)C++14
46 / 100
1094 ms7668 KiB
#include <bits/stdc++.h> #ifdef DEBUG #include "../templates/debug.h" #else #define deb(x...) #endif using namespace std; #define int long long struct bag : set<int>{ void add(int n){ for(auto it = begin();it != end();++it){ int e = *it; if((e&n) == e)return; } insert(n); } }; signed main() { iostream::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr); int n, a, b;cin >> n >> a >> b; vector<int> Y(n); for(auto &e : Y)cin >> e; bag dp[n + 1][n + 1]; dp[0][0].add(0); for(int i = 1;i<=n;i++){ for(int gsize = 1;gsize<=n;gsize++){ int tsum = 0; for(int j = i;j>=1;j--){ tsum += Y[j - 1]; if(dp[j - 1][gsize - 1].size() != 0){ for(auto e : dp[j - 1][gsize - 1]) dp[i][gsize].add(e|tsum); } } } } int ans = 1e18; for(int i = a;i<=b;i++){ deb(i, dp[n][i]); if(dp[n][i].size() != 0) ans = min(ans, *dp[n][i].begin()); } cout << ans << "\n"; }
#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...