75882024-01-09 21:20:03rennAutókódoláscpp17Részben helyes 48/503ms3868 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {

    long long nagy, kicsi, j = -1, h = -1;
    cin >> nagy;
    kicsi = nagy;

    bool prev = true, most = true;
    for(long long i = 0; i < 41; i++) {
        prev = most;
        most = (kicsi & (1LL << i));

        if(most && !prev) {
            kicsi ^= (1LL << i);
            kicsi ^= (1LL << (i-1LL));
            h = 0;
            break;
        }
    }
    
    prev = most = false;
    for(long long i = 0, k; i < 41; i++) {
        prev = most;
        most = (nagy & (1LL << i));

        j += most;

        nagy ^= ((long long)most << i);
        if(!most && prev) {
            nagy ^= (1LL << i);

            for(k = 0; k < j; k++) {
                nagy ^= (1LL << k);
            }
            break;
        }
    }

    cout << (h < 0 ? h : kicsi) << "\n";
    cout << (j < 0 || nagy > 1000000000000LL ? -1 : nagy) << "\n";

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base48/50
1Elfogadva0/03ms1876 KiB
2Elfogadva0/03ms2072 KiB
3Elfogadva2/23ms2304 KiB
4Elfogadva2/23ms2556 KiB
5Részben helyes1/23ms2768 KiB
6Részben helyes1/23ms2860 KiB
7Elfogadva2/23ms2860 KiB
8Elfogadva4/43ms3052 KiB
9Elfogadva4/43ms3300 KiB
10Elfogadva4/43ms3372 KiB
11Elfogadva4/43ms3568 KiB
12Elfogadva4/42ms3628 KiB
13Elfogadva4/42ms3632 KiB
14Elfogadva4/43ms3760 KiB
15Elfogadva4/43ms3772 KiB
16Elfogadva4/43ms3740 KiB
17Elfogadva4/43ms3868 KiB