답안 #620990

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
620990 2022-08-03T10:54:18 Z daisy2 Bali Sculptures (APIO15_sculpture) C++14
0 / 100
10 ms 4180 KB
#include<iostream>
#include<cstring>
#define endl '\n'
using namespace std;
long long n,a,b,m[2005],r=0,pref[2005],ts;
bool dp[2005][2005];
bool isposs(long long num)
{
    for(int i=0;i<=2000;i++)
        memset(dp[i],0,sizeof(dp[i]));

    dp[0][0]=1;
    bool is=0;
    for(int i=1;i<=n;i++)
    {
        for(long long j=i;j>=1;j--)
        {
            ts=pref[i]-pref[j-1];
            is=0;
            for(int bit=35;bit>=0;bit--)
            {
                if(((1<<bit)&num)==0 && ((1<<bit)&ts)==1)
                {
                    is=1;break;
                }
            }
            if(is) continue;

            for(int brg=1;brg<=min(j,b);brg++)
            {
                dp[i][brg]|=dp[j-1][brg-1];
            }
        }
    }
    bool re=0;
    for(int i=a;i<=b;i++)
    {
       re|=dp[n][i];
    }
    return re;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin>>n>>a>>b;

    for(int i=1;i<=n;i++)
    {
        cin>>m[i];
        pref[i]=pref[i-1]+m[i];
    }

    r=(1<<36)-1;
    for(int i=35;i>=0;i--)
    {
        if(isposs((1<<i)^r))
        {
            r^=(1<<i);
        }
    }
  cout<<r<<endl;
}
/*
6 1 3
8 1 2 1 5 4
*/

Compilation message

sculpture.cpp: In function 'int main()':
sculpture.cpp:56:9: warning: left shift count >= width of type [-Wshift-count-overflow]
   56 |     r=(1<<36)-1;
      |        ~^~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 4180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 4180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 10 ms 4180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 4172 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 4180 KB Output isn't correct
2 Halted 0 ms 0 KB -