1796 | 2022. 12. 03 18:30:04 | kdb | Autókódolás | cpp11 | Elfogadva 50/50 | 3ms | 4288 KiB |
#include <iostream>
#include <bitset>
#include <cmath>
#define ll long long
using namespace std;
int main()
{
cin.tie(nullptr);
cout.tie(nullptr);
ios_base::sync_with_stdio(false);
ll n;
cin >> n;
string s = bitset<40>(n).to_string();
for (int a = 0; a < s.size() / 2; a++) swap(s[a], s[s.size() - a - 1]);
string k = s, m = s;
int i = 0;
while (s[i] == '1') i++;
int j = i + 1;
while (j < s.size() && s[j] == '0') j++;
if (j < s.size())
{
k[j] = '0';
for (size_t a = 0; a < j; a++)
{
if (a >= j - i - 1) k[a] = '1';
else k[a] = '0';
}
for (int a = 0; a < k.size() / 2; a++) swap(k[a], k[k.size() - a - 1]);
cout << bitset<40>(k).to_ullong() << endl;
}
else cout << -1 << endl;
i = 0;
while (s[i] == '0') i++;
j = i + 1;
while (j < s.size() && s[j] == '1') j++;
if (j < s.size())
{
m[j] = '1';
for (size_t a = 0; a < j; a++)
{
if (a < j - i - 1) m[a] = '1';
else m[a] = '0';
}
for (int a = 0; a < m.size() / 2; a++) swap(m[a], m[m.size() - a - 1]);
cout << bitset<40>(m).to_ullong() << endl;
}
else cout << -1 << endl;
return 0;
}
/*
46
-45
-51
*/
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1828 KiB | |||
2 | Elfogadva | 0/0 | 2ms | 2024 KiB | |||
3 | Elfogadva | 2/2 | 2ms | 2224 KiB | |||
4 | Elfogadva | 2/2 | 2ms | 2432 KiB | |||
5 | Elfogadva | 2/2 | 2ms | 2508 KiB | |||
6 | Elfogadva | 2/2 | 2ms | 2904 KiB | |||
7 | Elfogadva | 2/2 | 2ms | 2904 KiB | |||
8 | Elfogadva | 4/4 | 2ms | 3104 KiB | |||
9 | Elfogadva | 4/4 | 2ms | 3188 KiB | |||
10 | Elfogadva | 4/4 | 2ms | 3312 KiB | |||
11 | Elfogadva | 4/4 | 2ms | 3548 KiB | |||
12 | Elfogadva | 4/4 | 2ms | 3720 KiB | |||
13 | Elfogadva | 4/4 | 2ms | 3800 KiB | |||
14 | Elfogadva | 4/4 | 2ms | 4016 KiB | |||
15 | Elfogadva | 4/4 | 2ms | 4092 KiB | |||
16 | Elfogadva | 4/4 | 2ms | 4164 KiB | |||
17 | Elfogadva | 4/4 | 2ms | 4288 KiB |