15282022-11-22 09:51:12TomaSajtAutókódoláscpp14Hibás válasz 50/503ms3788 KiB
#include <bits/stdc++.h>
#define speed ios::sync_with_stdio(0);cin.tie(0)
using namespace std;
typedef unsigned long long ull;

ull ne(ull n) {
    ull p1 = n & -n;
    ull m = n + p1 - 1; // right of the first 1 is all 1s
    ull p0 = ~m & (m + 1); // position of first 0 after the first bunch of 1
    ull masked = n & (p0 - 1);
    int c = __builtin_popcount(masked) - 1;
    ull res = n - masked + p0 + (1ull << c) - 1;
    return res;
}

int main() {
    speed;
    ull n; cin >> n;
    ull pr = ~ne(~n);
    if ((pr >> 63) & 1) cout << "-1";
    else cout << pr;
    cout << '\n' << ne(n);
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms1768 KiB
2Hibás válasz0/02ms1924 KiB
3Elfogadva2/22ms2128 KiB
4Elfogadva2/22ms2336 KiB
5Elfogadva2/22ms2416 KiB
6Elfogadva2/22ms2540 KiB
7Elfogadva2/22ms2764 KiB
8Elfogadva4/42ms2928 KiB
9Elfogadva4/42ms3132 KiB
10Elfogadva4/42ms3508 KiB
11Elfogadva4/42ms3448 KiB
12Elfogadva4/42ms3420 KiB
13Elfogadva4/42ms3644 KiB
14Elfogadva4/42ms3648 KiB
15Elfogadva4/42ms3644 KiB
16Elfogadva4/42ms3648 KiB
17Elfogadva4/42ms3788 KiB