upload
This commit is contained in:
commit
810a9654a4
50 changed files with 4450 additions and 0 deletions
39
1/H.cpp
Normal file
39
1/H.cpp
Normal file
|
@ -0,0 +1,39 @@
|
|||
#include <iostream>
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
|
||||
std::cin >> n;
|
||||
|
||||
int min_blocks = n;
|
||||
int* a = new int[n];
|
||||
|
||||
for (long i = 0; i < n; i++) {
|
||||
std::cin >> a[i];
|
||||
}
|
||||
|
||||
for (long start = 0; start < 32; ++start) {
|
||||
bool *is_border = new bool[n]();
|
||||
long cx = a[start];
|
||||
int i = start;
|
||||
int border_count = 0;
|
||||
|
||||
while (!is_border[i % n]) {
|
||||
if ((cx & a[(i + 1) % n]) == 0) {
|
||||
cx |= a[(i + 1) % n];
|
||||
} else {
|
||||
cx = a[(i + 1) % n];
|
||||
is_border[i % n] = true;
|
||||
++border_count;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
min_blocks = std::min(min_blocks, border_count);
|
||||
|
||||
delete[] is_border;
|
||||
}
|
||||
std::cout << min_blocks;
|
||||
delete[] a;
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue