제출 #1132143

#제출 시각아이디문제언어결과실행 시간메모리
1132143vladiliusBali Sculptures (APIO15_sculpture)C++20
46 / 100
475 ms244476 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; #define pb push_back #define ff first #define ss second const int lg = 200; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, l, r; cin>>n>>l>>r; vector<int> a(n + 1); vector<ll> p(n + 1); for (int i = 1; i <= n; i++){ cin>>a[i]; p[i] = p[i - 1] + a[i]; } vector<ll> dp[n + 1][r + 1]; dp[0][0] = {0}; for (int i = 1; i <= n; i++){ for (int j = 1; j <= r; j++){ for (int t = 1; t <= i; t++){ ll s = p[i] - p[t - 1]; for (ll x: dp[t - 1][j - 1]){ dp[i][j].pb(x | s); } } sort(dp[i][j].begin(), dp[i][j].end()); while (dp[i][j].size() > lg){ dp[i][j].pop_back(); } } } ll out = 1e18; for (int i = l; i <= r; i++){ out = min(out, dp[n][i][0]); } cout<<out<<"\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...