129222025-01-03 15:36:04ercseferencAutókódoláscpp17Time limit exceeded 42/50298ms516 KiB
#include <iostream>
#include <cmath>
using namespace std;
int egy(long long n){
    int s=0;
    while(n!=0){
        if(n%2==1)s++;
        n=n/2;}
    return s;}
int hat(long long n){
    int s=0;
    while(n!=0){
        n=n/2; s++;}
    return s;}
long long mini(long long n){
    long long s=1;
    for(int i=0; i<hat(n)-1; i++){
        s=s*2;}
    return s;}
long long kerkis(long long n){
    int i=n-1;
    while(egy(i)!=egy(n)){i--;}
    return i;
    }
long long kernag(long long n){
    int i=n+1;
    while(egy(i)!=egy(n)){i++;}
    return i;}
int main()
{
    long long n,kis,nagy;
    cin>>n;
    long long sorsz=n-mini(n);
    if(n==1){kis=-1; nagy=2;}
    else if(egy(n)==1){kis=n/2; nagy=n*2;}
    else if(hat(n)==egy(n)){kis=-1; nagy=2*mini(n)+sorsz;}
    else if(sorsz==pow(2,egy(n)-1)){kis=mini(n)-pow(2,hat(n)-egy(n)-1); nagy=kernag(n);}
    else if(n==2*mini(n)-pow(2,hat(n)-egy(n))){kis=kerkis(n); nagy=2*mini(n)+pow(2,egy(n)-1)-1;}
    else {kis=kerkis(n); nagy=kernag(n);}
    cout<<kis<<endl<<nagy;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base42/50
1Accepted0/01ms508 KiB
2Accepted0/01ms500 KiB
3Accepted2/21ms320 KiB
4Accepted2/21ms320 KiB
5Accepted2/21ms320 KiB
6Accepted2/21ms320 KiB
7Accepted2/21ms392 KiB
8Accepted4/41ms384 KiB
9Accepted4/41ms320 KiB
10Accepted4/41ms320 KiB
11Accepted4/41ms320 KiB
12Accepted4/41ms320 KiB
13Accepted4/41ms500 KiB
14Accepted4/42ms320 KiB
15Accepted4/443ms516 KiB
16Time limit exceeded0/4228ms512 KiB
17Time limit exceeded0/4298ms320 KiB