2119 | 2022. 12. 20 12:35:30 | 1478 | Autókódolás | cpp11 | Részben helyes 48/50 | 3ms | 4252 KiB |
#include <bits/stdc++.h>
using namespace std;
int main()
{
//ifstream cin("be.txt");
long long n;
cin>>n;
long long tempN = n;
long long multTwo = 1;
///kisebb
long long ans1 = 0;
while(tempN > 0){
ans1 += multTwo * (tempN%2);
if(tempN%2 == 0 && tempN/2 > 0 && (tempN/2)%2 == 1){
///aktualis bit
ans1 += multTwo;
///maradek
tempN/=4;
ans1 += tempN*4*multTwo;
break;
}
multTwo *= 2;
tempN /= 2;
}
if(ans1 == 1 || ans1 == n) cout<<-1<<'\n';
else cout<<ans1<<'\n';
///nagyobb
tempN = n;
multTwo = 1;
int numberOfZerosAtEnd = 0;
while(tempN > 0 && tempN%2 == 0){
numberOfZerosAtEnd++;
multTwo *= 2;
tempN /= 2;
}
//cout<<numberOfZerosAtEnd<<'\n';
long long ans2 = 0;
while(tempN > 0){
if(tempN/2 == 0 || tempN%2 == 1 && (tempN/2)%2 == 0){
///aktualis bit
while(numberOfZerosAtEnd){
ans2/=2;
numberOfZerosAtEnd--;
}
ans2 += multTwo*2;
///maradek
tempN/=4;
ans2 += tempN*4*multTwo;
break;
}
else{
ans2 += multTwo * (tempN%2);
}
multTwo *= 2;
tempN /= 2;
}
cout<<ans2<<'\n';
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 48/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1880 KiB | |||
2 | Elfogadva | 0/0 | 2ms | 2068 KiB | |||
3 | Elfogadva | 2/2 | 2ms | 2144 KiB | |||
4 | Elfogadva | 2/2 | 2ms | 2276 KiB | |||
5 | Részben helyes | 1/2 | 2ms | 2488 KiB | |||
6 | Részben helyes | 1/2 | 2ms | 2704 KiB | |||
7 | Elfogadva | 2/2 | 2ms | 2760 KiB | |||
8 | Elfogadva | 4/4 | 2ms | 2968 KiB | |||
9 | Elfogadva | 4/4 | 2ms | 3164 KiB | |||
10 | Elfogadva | 4/4 | 2ms | 3296 KiB | |||
11 | Elfogadva | 4/4 | 2ms | 3508 KiB | |||
12 | Elfogadva | 4/4 | 2ms | 3620 KiB | |||
13 | Elfogadva | 4/4 | 2ms | 3828 KiB | |||
14 | Elfogadva | 4/4 | 2ms | 4020 KiB | |||
15 | Elfogadva | 4/4 | 2ms | 4252 KiB | |||
16 | Elfogadva | 4/4 | 2ms | 4108 KiB | |||
17 | Elfogadva | 4/4 | 2ms | 4240 KiB |