답안 #660832

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
660832 2022-11-23T09:45:32 Z danikoynov Bali Sculptures (APIO15_sculpture) C++14
0 / 100
1 ms 340 KB
#include <bits/stdc++.h>
#define endl '\n'

using namespace std;
typedef long long ll;

void speed()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}

const int maxn = 200, maxc = 8001;

int dp[51][21][maxc], n, A, B, a[maxn];
int fp[maxn][maxc];
void solve()
{
    cin >> n >> A >> B;
    for (int i = 1; i <= n; i ++)
    {
        cin >> a[i];
    }
    if (A == 1)
    {
        fp[0][0] = 1;
        for (int i = 1; i <= n; i ++)
        {
            int sum = 0;
            for (int k = i; k > 0; k --)
            {
                sum += a[k];
                for (int x = 0; x < maxc; x ++)
                {
                    int nx = (x | sum);
                    if (fp[k - 1][x] == 1)
                        fp[i][nx] = 1;
                }
            }
        }
        int best = maxc;
        for (int j = 0; j < maxc; j ++)
        {
            if (fp[n][j] == 1)
            {
                best = j;
                break;
            }
        }
        cout << best << endl;
        return;
    }
    dp[0][0][0] = 1;
    for (int i = 1; i <= n; i ++)
    {
        for (int j = 1; j <= B; j ++)
        {
            int sum = 0;
            for (int k = i; k > 0; k --)
            {
                sum = sum + a[k];
                for (int x = 0; x < maxc; x ++)
                {
                    int new_x = (x | sum);
                    if (dp[k - 1][j - 1][x] == 1)
                    dp[i][j][new_x] = 1;
                }
            }
        }
    }

    int best = maxc;
    for (int j = A; j <= B; j ++)
    {
        for (int x = 0; x < maxc; x ++)
        {
            if (dp[n][j][x] != 0)
            {
                best = min(best, x);
                break;
            }
        }
    }

        cout << best << endl;
}

int main()
{
    solve();
    return 0;
}
/**
6 1 3
8 1 2 1 5 4
*/
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Incorrect 1 ms 340 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Incorrect 1 ms 340 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Incorrect 1 ms 340 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Incorrect 1 ms 340 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Incorrect 1 ms 340 KB Output isn't correct
6 Halted 0 ms 0 KB -