7599 | 2024. 01. 10 00:49:00 | TuruTamas | Autókódolás | cpp17 | Elfogadva 50/50 | 3ms | 3656 KiB |
#include <bits/stdc++.h>
using namespace std;
#ifdef DEBUG
ifstream in_file("minta/be1.txt");
#define input in_file
#define INTHENAMEOFGOD
#else
#define input cin
#define INTHENAMEOFGOD \
ios::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0);
#endif
typedef long long ll;
typedef vector<ll> vi;
typedef vector<vi> vvi;
typedef vector<bool> vb;
typedef pair<ll, ll> pii;
ll N;
int main() {
INTHENAMEOFGOD
input >> N;
bitset bits = bitset<64>(N);
bool big = false, small = false;
ll r_b = -1, r_s = -1;
for (int i = 0; i < 63; i++) {
if (!small && !bits[i] && bits[i+1]) {
small = true;
bitset b = bits;
b[i] = true;
b[i+1] = false;
int first_before = 0;
for (int k = 0; k < i; k++) {
if (b[k])
first_before = k;
}
bitset<64> mask((b >> i) << i);
b = (b << 64-i) >> 64-i;
b <<= i-first_before-1;
b |= mask;
r_s = b.to_ullong();
}
if (!big && bits[i] && !bits[i+1]) {
big = true;
bitset b = bits;
b[i] = false;
b[i+1] = true;
size_t first = b._Find_first();
bitset mask = (b >> i) << i;
b <<= 64-i;
b >>= 64-i+first;
b |= mask;
r_b = b.to_ullong();
}
}
cout << r_s << "\n" << r_b << endl;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1896 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2128 KiB | |||
3 | Elfogadva | 2/2 | 3ms | 2332 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 2548 KiB | |||
5 | Elfogadva | 2/2 | 3ms | 2780 KiB | |||
6 | Elfogadva | 2/2 | 3ms | 2968 KiB | |||
7 | Elfogadva | 2/2 | 3ms | 3184 KiB | |||
8 | Elfogadva | 4/4 | 3ms | 3224 KiB | |||
9 | Elfogadva | 4/4 | 3ms | 3228 KiB | |||
10 | Elfogadva | 4/4 | 3ms | 3232 KiB | |||
11 | Elfogadva | 4/4 | 3ms | 3228 KiB | |||
12 | Elfogadva | 4/4 | 3ms | 3224 KiB | |||
13 | Elfogadva | 4/4 | 3ms | 3612 KiB | |||
14 | Elfogadva | 4/4 | 3ms | 3596 KiB | |||
15 | Elfogadva | 4/4 | 3ms | 3564 KiB | |||
16 | Elfogadva | 4/4 | 3ms | 3648 KiB | |||
17 | Elfogadva | 4/4 | 3ms | 3656 KiB |