#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]; }
int rezultat = (1 << 30) - 1;
for (int putere = (1 << 29) ; putere ; putere >>= 1)
{
rezultat ^= putere;
posibil[0].set(0);
for (int dreapta = 1 ; dreapta <= lungime ; dreapta++)
{
posibil[dreapta].reset();
for (int stanga = dreapta , suma = 0 ; 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 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... |