Submission #721882

#TimeUsernameProblemLanguageResultExecution timeMemory
721882n0sk1llBali Sculptures (APIO15_sculpture)C++14
50 / 100
169 ms460 KiB
#include <bits/stdc++.h>

#define FAST ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);cerr.tie(0)
#define mp make_pair
#define xx first
#define yy second
#define pb push_back
#define pf push_front
#define popb pop_back
#define popf pop_front
#define all(x) x.begin(),x.end()
#define ff(i,a,b) for (int i = a; i < b; i++)
#define fff(i,a,b) for (int i = a; i <= b; i++)
#define bff(i,a,b) for (int i = b-1; i >= a; i--)
#define bfff(i,a,b) for (int i = b; i >= a; i--)

using namespace std;
long double typedef ld;
unsigned int typedef ui;
long long int typedef li;
pair<int,int> typedef pii;
pair<li,li> typedef pli;
pair<ld,ld> typedef pld;
vector<vector<int>> typedef graph;
unsigned long long int typedef ull;
//const int mod = 998244353;
const int mod = 1000000007;







//Note to self: Check for overflow

li a[2006];
li pre[2006];

int dp[2006];

int main()
{
    FAST;

    int n,k; cin>>n>>k>>k;
    fff(i,1,n) cin>>a[i];
    fff(i,1,n) pre[i]=pre[i-1]+a[i];

    li ans=0;

    li include=0;
    bff(b,0,50)
    {
        li cur=include|(1ll<<b);
        fff(i,1,n) dp[i]=mod;
        dp[n+1]=0;

        bfff(i,1,n)
        {
            li tmp=0;
            fff(j,i,n)
            {
                tmp+=a[j];
                if (!(tmp&cur)) dp[i]=min(dp[i],dp[j+1]+1);
            }
        }

        if (dp[1]>k) ans|=(1ll<<b);
        else include=cur;
    }

    cout<<ans<<"\n";
}

//Note to self: Check for overflow

/*

6 1 3
8 1 2 1 5 4

10 1 10
1 1 1 1 1 1 1 1 1 1

*/
#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...