# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1199295 | raphaelp | 비교 (balkan11_cmp) | C++20 | 464 ms | 103040 KiB |
#include "cmp.h"
#include <bits/stdc++.h>
using namespace std;
void remember(int value)
{
vector<int> tab;
int a = 1;
for (int i = 0; i < 12; i++)
{
tab.push_back(i % 2);
value /= 2;
}
a = 1;
for (int i = 11; i >= 0; i--)
{
if (tab[i] == 0)
{
a *= 2;
}
else
{
a = a * 2 + 1;
}
if (i % 2 == 0)
bit_set(a);
}
}
int compare(int value)
{
int a = 1;
vector<int> tab(12);
vector<int> tab2(12);
for (int i = 0; i < 12; i++)
{
if (value % 2 == 0)
{
a *= 2;
}
else
{
a = a * 2 + 1;
}
tab[11 - i] = a;
tab2[11 - i] = value % 2;
value /= 2;
}
int deb = 1, fin = 7, test, mil;
for (int i = 0; i < 3; i++)
{
mil = (deb + fin) / 2;
test = bit_get(tab[mil * 2 - 1]);
if (test == 1)
deb = mil;
else
fin = mil;
}
if (mil == 6 && test == 1)
return 0;
mil = mil * 2 - 1;
if (test == 1)
mil++;
else
mil--;
test = bit_get(tab[mil]);
if (test == 1 && tab2[mil + 1] == 1)
return 1;
if (test == 1 && tab2[mil + 1] == 0)
return -1;
if (test == 0 && tab2[mil - 1] == 1)
return 1;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |