# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
722746 | tvladm2009 | cmp (balkan11_cmp) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "cmp.h"
using namespace std;
typedef long long ll;
int v[] = {0, 10, 10, 8, 6};
int p[] = {0, 4800, 480, 48, 6, 1};
int t[] = {0, 1, 11, 21, 29};
int remember(int a) {
for (int i = 4; i >= 1; i--) {
int x = (a / p[i + 1]) % v[i];
bit_set(x + t[i]);
}
}
int compare(int b) {
int i = 1;
for (; i <= 4; i++) {
int x = (b / p[i + 1]) % v[i];
if (bit_get(x + t[i]) == 0) {
break;
}
}
if (i == 5) {
return 0;
}
int pos = t[i];
int l = 0, r = v[i] - 1;
if (x - l < r - x) {
for (int i = l; i < x; i++) {
if (bit_get(i + pos) == 1) {
return 1;
}
}
return -1;
} else {
for (int i = r; i > x; i--) {
if (bit_get(i + pos) == 1) {
return -1;
}
}
return 1;
}
}