1835A - k-th equality - CodeForces Solution


brute force implementation math

Please click on ads to support us..

C++ Code:

//#pragma GCC optimize ("O3")

#include <iostream>
#include <algorithm>

using namespace std;

void solve() {
	using ll = long long;

	auto min_val{[](int d) {
		ll mn{1};
		for (int i{1}; i < d; ++i) mn *= 10;
		return mn;
	}};
	auto max_val{[](int d) {
		ll mx{};
		for (int i{0}; i < d; ++i) mx = (mx * 10) + 9;
		return mx;
	}};

	int a, b, c; ll k;
	cin >> a >> b >> c >> k;

	ll mna{min_val(a)}, mnb{min_val(b)}, mnc{min_val(c)};
	ll mxa{max_val(a)}, mxb{max_val(b)}, mxc{max_val(c)};
	for (ll i{max(mna, mnc - mxb)}; i <= min(mxa, mxc - mnb); ++i) {
		ll mn{max(mnb, mnc - i)}, mx{min(mxb, mxc - i)};
		if (k <= mx - mn + 1) {
			cout << i << " + " << mn + k - 1 << " = " << (i + mn + k - 1) << '\n';
			return ;
		} else k -= mx - mn + 1;
	}
	cout << "-1\n";
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	
	int t{1};
	cin >> t;
	while (t--) solve();
}


Comments

Submit
0 Comments
More Questions

450A - Jzzhu and Children
546A - Soldier and Bananas
32B - Borze
1651B - Prove Him Wrong
381A - Sereja and Dima
41A - Translation
1559A - Mocha and Math
832A - Sasha and Sticks
292B - Network Topology
1339A - Filling Diamonds
910A - The Way to Home
617A - Elephant
48A - Rock-paper-scissors
294A - Shaass and Oskols
1213A - Chips Moving
490A - Team Olympiad
233A - Perfect Permutation
1360A - Minimal Square
467A - George and Accommodation
893C - Rumor
227B - Effective Approach
1534B - Histogram Ugliness
1611B - Team Composition Programmers and Mathematicians
110A - Nearly Lucky Number
1220B - Multiplication Table
1644A - Doors and Keys
1644B - Anti-Fibonacci Permutation
1610A - Anti Light's Cell Guessing
349B - Color the Fence
144A - Arrival of the General