139662025-01-09 13:02:00ercseferencAutókódoláscpp17Hibás válasz 3/501ms508 KiB
#include <bits/stdc++.h>
using namespace std;
bool a[500];
int main()
{
    long long n; ifstream f("szamok.txt"); f>>n;
    int k=0,egy=0; long long kis,nagy; long long m=n;
    while(n!=0){a[k]=n%2; n=n/2; k++;}
    for(int i=0; i<k; i++){if(a[i])egy++;}
    if(m==0){kis=-1; nagy=-1;}
    else if(egy==1){kis=m/2;}
    else{
        int k2=0;
        while(a[k2]==1){k2++;}
        if(k2==k)kis=-1;
        else{
            while(a[k2]==0){k2++;}
            a[k2]=0; a[k2-1]=1;
            int t=1; kis=0;
            for(int i=0; i<=k; i++){kis+=a[i]*t; t*=2;}}}
    for(int i=0; i<500; i++){a[i]=0;}
    n=m; k=0; while(n!=0){a[k]=n%2; n=n/2; k++;}
    if(m==0){kis=-1; nagy=-1;}
    else if(egy==1)nagy=2*m;
    else{
        bool vannul=0; int mnul;
        for(int i=0; i<k; i++){
            if(a[i]==0 && vannul){mnul=i; break;}
            if(a[i]==0)vannul=1;}
        if(mnul<k){
            a[mnul]=1;
            for(int i=0; i<mnul; i++){a[i]=0;}
            for(int i=0; i<egy-mnul+2; i++){a[i]=1;}}
        else{
            if(k==egy){a[k]=1; a[k-1]=0;}
            else{
                int nulla;
                int t=1; kis=0;
            for(int i=0; i<=k; i++){kis+=a[i]*t; t*=2;}for(int i=0; i<k; i++){if(a[i]==0)nulla=i;}
                if(nulla==0){
                    for(int i=0; i<egy-1; i++){a[i]=1;} a[egy-1]=0;
                    a[egy]=0; a[egy+1]=1;}
                else{a[nulla]=1; a[nulla-1]=0;}}}
        long long t=1; nagy=0;
            for(int i=0; i<=k; i++){nagy+=a[i]*t; t*=2;}}
    cout<<kis<<endl<<nagy;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base3/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/01ms500 KiB
3Részben helyes1/21ms320 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/21ms356 KiB
6Hibás válasz0/21ms388 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/41ms316 KiB
9Hibás válasz0/41ms316 KiB
10Hibás válasz0/41ms316 KiB
11Hibás válasz0/41ms508 KiB
12Hibás válasz0/41ms500 KiB
13Részben helyes2/41ms316 KiB
14Hibás válasz0/41ms316 KiB
15Hibás válasz0/41ms316 KiB
16Hibás válasz0/41ms508 KiB
17Hibás válasz0/41ms316 KiB