137272025-01-08 14:38:09mateAutókódoláscpp17Runtime error 9/501ms508 KiB
#include <bits/stdc++.h>
using namespace std;


int main() {
	long long n; cin >> n;
	string s;
	int cnt = 0;
	for(int i = 0; i <= log2(n); i++){
		s += to_string(n >> i & 1);
		if(s[i] == '1')	cnt++;
	}
	reverse(s.begin(),s.end());
	//cout << s << '\n';
	int mini1 = INT_MAX;
	int mini2 = INT_MAX;
	int mini3 = INT_MAX;
	int mini4 = INT_MAX;
	bool kikesz1 = 0;
	bool kikesz2 = 0;
	bool kikesz3 = 0;
	bool kikesz4 = 0;
	int cnt2 = 0;
	for(int i = s.length()-1; i >= 0; i--){
		if(s[i] - '0' == 0 && !kikesz1){
			mini1 = i;
			kikesz1 = 1;
		}
		if((mini1 < INT_MAX) && (s[i] - '0' == 1) && !kikesz2){
			mini2 = i;
			kikesz2 = 1;
		}
		if(s[i] - '0' == 1 && !kikesz3){
			mini3 = i;
			kikesz3 = 1;
		}
		if((mini3 < INT_MAX) && (s[i] - '0' == 0) && !kikesz4){
			mini4 = i;
			kikesz4 = 1;
		}
		if(kikesz4){
			cnt2++;
		}


	}
	string kisebb = s;
	kisebb[mini1] = '1';
	kisebb[mini2] = '0';
	long long a = 0;
	for(int i = 0; i < s.length(); i++){
		if(kisebb[i] == '1'){
			a += (1 << (s.length()-i-1));
		}
	}
	cout << a << '\n';

	string nagyobb = s;
	nagyobb[mini4] = '1';
	for(int i = s.length()-1; i > mini4; i--){
		if(cnt-cnt2 > 0){
			nagyobb[i] = '1';
			cnt--;
		}else{
			nagyobb[i] = '0';
		}
	}
	long long b = 0;
	for(int i = 0; i < s.length(); i++){
		if(nagyobb[i] == '1'){
			b += (1 << (s.length()-i-1));
		}
	}
	cout << b << '\n';

	//cout << nagyobb;


}
SubtaskSumTestVerdictTimeMemory
base9/50
1Accepted0/01ms316 KiB
2Runtime error0/01ms316 KiB
3Runtime error0/21ms508 KiB
4Runtime error0/21ms316 KiB
5Wrong answer0/21ms316 KiB
6Wrong answer0/21ms316 KiB
7Partially correct1/21ms316 KiB
8Runtime error0/41ms316 KiB
9Accepted4/41ms316 KiB
10Partially correct2/41ms500 KiB
11Wrong answer0/41ms316 KiB
12Partially correct2/41ms316 KiB
13Runtime error0/41ms316 KiB
14Wrong answer0/41ms316 KiB
15Wrong answer0/41ms500 KiB
16Runtime error0/41ms316 KiB
17Wrong answer0/41ms316 KiB