이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define N 2002
using namespace std;
int n,A,B,i,j,k,f[N];
long long tt,a[N];
bool check(long long tt,int k)
{
memset(f,63,sizeof(f));
f[0]=0;
for(i=1;i<=n;i++)
for(j=0;j<i;j++)
{
long long tt2=a[i]-a[j];
if(((tt2>>k)|(tt>>k))==(tt>>k)) f[i]=min(f[i],f[j]+1);
}
return f[n]<=B;
}
void sub1()
{
for(k=34;k>=0;k--)
if(check(tt,k)==0) tt|=(1LL<<k);
cout<<tt;
}
int main()
{
//freopen("ntu.inp","r",stdin);
//freopen("ntu.out","w",stdout);
cin>>n>>A>>B;
for(i=1;i<=n;i++) { cin>>a[i]; a[i]+=a[i-1]; }
if(A==1) sub1();
// else sub2();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |