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