141422025-01-09 21:33:43ercseferencAutókódoláscpp17Futási hiba 44/502ms556 KiB
#include <bits/stdc++.h>
using namespace std;
vector<bool>a(1000),kis(1000);
int main()
{
    long long n; cin>>n;
    int k=0,egy=0; long long m=n,kicsi=0,nagyi=0;
    while(m!=0){a[k]=m%2; egy+=m%2; m=m/2; k++;}
    kis=a;
    int hely,egykis=0; bool van;
    for(int i=0; i<k; i++){
        egykis+=a[i];
        if(a[i]==0 && a[i+1]==1){van=1; hely=i; break;}}
    if(!van)kicsi=-1;
    else{
        swap(kis[hely],kis[hely+1]);
        for(int i=0; i<hely; i++){kis[i]=0;}
        for(int i=hely-1; i>hely-1-egykis; i--){kis[i]=1;}
        long long  t=1;
        for(int i=0; i<k; i++){kicsi+=kis[i]*t; t*=2;}}
    kis=a; egykis=0; van=0;
    for(int i=0; i<k; i++){
        egykis+=a[i];
        if(a[i]==1 && a[i+1]==0){van=1; hely=i; break;}}
    if(!van)nagyi=-1;
    else{
        swap(kis[hely],kis[hely+1]);
        for(int i=0; i<hely; i++){kis[i]=0;}
        for(int i=0; i<egykis-1; i++){kis[i]=1;}
        long long t=1;
        for(int i=0; i<=k; i++){nagyi+=kis[i]*t; t*=2;}}
    cout<<kicsi<<endl<<nagyi;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base44/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Futási hiba0/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva4/41ms316 KiB
9Elfogadva4/41ms556 KiB
10Elfogadva4/41ms316 KiB
11Elfogadva4/41ms316 KiB
12Elfogadva4/41ms316 KiB
13Futási hiba0/41ms316 KiB
14Elfogadva4/41ms316 KiB
15Elfogadva4/42ms316 KiB
16Elfogadva4/41ms316 KiB
17Elfogadva4/41ms316 KiB