Submission #1282177

#TimeUsernameProblemLanguageResultExecution timeMemory
1282177SSKMFBali Sculptures (APIO15_sculpture)C++20
0 / 100
1 ms572 KiB
#include <bits/stdc++.h>
using namespace std;

bitset <2001> posibil[2001];
int sir[2001];

int main ()
{
    ios :: sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int lungime , minim , maxim;
    cin >> lungime >> minim >> maxim;

    for (int indice = 1 ; indice <= lungime ; indice++)
        { cin >> sir[indice]; }
    
    int64_t rezultat = (1LL << 40) - 1;
    for (int64_t putere = (1LL << 40) ; putere ; putere >>= 1)
    {
        rezultat ^= putere;

        posibil[0].set(0);
        for (int dreapta = 1 ; dreapta <= lungime ; dreapta++)
        {
            int64_t suma = 0;
            posibil[dreapta].reset();
            for (int stanga = dreapta ; stanga && suma <= rezultat ; stanga--)
            {
                suma += sir[stanga];
                if ((rezultat & suma) == suma)
                    { posibil[dreapta] |= (posibil[stanga - 1] << 1); }
            }
        }

        bool gasit = false;
        for (int indice = minim ; indice <= maxim ; indice++) {
            if (posibil[lungime][indice])
                { gasit = true; break; }
        }

        if (!gasit)
            { rezultat |= putere; }
    }

    cout << rezultat;
    return 0;
}
#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...