138822025-01-09 08:17:48TundeAutókódoláscpp17Hibás válasz 21/501ms604 KiB
#include <iostream>
#include <cmath>

using namespace std;

long long kt(long long n)
{
    long long m=0, a=0;
    while(n!=0)
    {
        int y=n%10;
        m+=y*pow(2, a);
        a++;
        n/=10;
    }
    return m;
}

int main()
{
    long long n;
    cin >> n;
    long long i=0;
    while(pow(2, i)<n)
    {
        ++i;
    }
    long long db=i;
    long long t[db];
    while(i!=0)
    {
        long long u=pow(2, i-1);
        int k=n%u;
        if(u<=n)
        {
            t[db-i]=1;
        }
        else
            t[db-i]=0;
        n=k;
        i--;
    }
    long long a=0, b=0;
    for(long long j=db-1; j>0; j--)
    {
        if(t[j]==0 && t[j-1]==1)
        {
            for(long long k=0; k<j-1; k++)
            {
                a*=10;
                a+=t[k];
            }
            a*=10;
            a+=t[j];
            a*=10;
            a+=t[j-1];
            for(long long k=j+1; k<db; k++)
            {
                a*=10;
                a+=t[k];
            }
            cout << kt(a);
            break;
        }
    }
    if(a==0)
        cout << -1;
    cout << endl;
    for(long long j=db-1; j>0; j--)
    {
        if(t[j]==1 && t[j-1]==0)
        {
            for(long long k=0; k<j-1; k++)
            {
                b*=10;
                b+=t[k];
            }
            b*=10;
            b+=t[j];
            long long s=0;
            for(long long k=j+1; k<db; k++)
            {
                if(t[k]==1)
                    ++s;
            }
            for(long long k=0; k<(db-j-s); k++)
            {
                b*=10;
            }
            for(long long k=0; k<s; k++)
            {
                b*=10;
                b+=1;
            }
            cout << kt(b);
            break;
        }
    }
    if(b==0)
        cout << -1;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base21/50
1Elfogadva0/01ms508 KiB
2Hibás válasz0/01ms508 KiB
3Részben helyes1/21ms508 KiB
4Hibás válasz0/21ms316 KiB
5Részben helyes1/21ms316 KiB
6Részben helyes1/21ms316 KiB
7Elfogadva2/21ms508 KiB
8Részben helyes2/41ms316 KiB
9Elfogadva4/41ms604 KiB
10Elfogadva4/41ms316 KiB
11Elfogadva4/41ms316 KiB
12Hibás válasz0/41ms508 KiB
13Részben helyes2/41ms316 KiB
14Hibás válasz0/41ms316 KiB
15Hibás válasz0/41ms316 KiB
16Hibás válasz0/41ms316 KiB
17Hibás válasz0/41ms316 KiB