1587 | 2022. 11. 28 16:43:06 | kovacs.peter.18f | Autókódolás | cpp11 | Elfogadva 50/50 | 3ms | 3916 KiB |
#include <iostream>
using namespace std;
long long N;
int bitcount(long long n) {
int result = 0;
while (n) {
n &= n - 1;
++result;
}
return result;
}
long long following(long long n) {
n |= n - 1;
++n;
n += (1LL << bitcount(N) - bitcount(n)) - 1;
return n;
}
long long previous(long long n) {
n &= n + 1;
--n;
n ^= (1LL << bitcount(n) - bitcount(N)) - 1;
return n;
}
int main() {
cin.sync_with_stdio(false);
cin.tie(nullptr);
cin >> N;
cout << (bitcount(N + 1) == 1 ? -1 : previous(N)) << '\n' << following(N) << '\n';
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1892 KiB | |||
2 | Elfogadva | 0/0 | 2ms | 2084 KiB | |||
3 | Elfogadva | 2/2 | 2ms | 2156 KiB | |||
4 | Elfogadva | 2/2 | 2ms | 2288 KiB | |||
5 | Elfogadva | 2/2 | 2ms | 2364 KiB | |||
6 | Elfogadva | 2/2 | 2ms | 2392 KiB | |||
7 | Elfogadva | 2/2 | 2ms | 2592 KiB | |||
8 | Elfogadva | 4/4 | 2ms | 2796 KiB | |||
9 | Elfogadva | 4/4 | 2ms | 2876 KiB | |||
10 | Elfogadva | 4/4 | 2ms | 3000 KiB | |||
11 | Elfogadva | 4/4 | 2ms | 3204 KiB | |||
12 | Elfogadva | 4/4 | 2ms | 3404 KiB | |||
13 | Elfogadva | 4/4 | 2ms | 3612 KiB | |||
14 | Elfogadva | 4/4 | 2ms | 3692 KiB | |||
15 | Elfogadva | 4/4 | 2ms | 3916 KiB | |||
16 | Elfogadva | 4/4 | 2ms | 3896 KiB | |||
17 | Elfogadva | 4/4 | 2ms | 3892 KiB |