152212025-02-17 07:37:21sarminSakktábla (75 pont)cpp17Elfogadva 75/759ms8692 KiB
// Created by Armin on 2/16/2025.

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pp = pair<int, int>;
using vi = vector<int>;
using vvi = vector<vector<int>>;
using vpi = vector<pair<int, int>>;
using vl = vector<ll>;
using vll = vector<ll>;
using vs = vector<string>;
using vvs = vector<vector<string>>;
using ss = set<string>;
using msi = map<string, int>;
using mint = map<int, int>;
constexpr ll MOD = 1e9 + 7;

vl v(1e6 + 2);

int main() {
    ios_base::sync_with_stdio(false); cin.tie(0);

	/*int n, m; cin >> n >> m;
	if (n > m && n - m > 1) {
		n = m + 1;
	} else if (m > n && m - n > 1) {
		m = n + 1;
	}
	cout << n*/

    ll no = 3;
    v[0] = 2;
    for (int i = 1; i < 1e6 + 2; i++) {
      v[i] = v[i - 1] + no;
      if (i % 2 == 0) no += 2;
    }

	int n, m; cin >> n >> m;
	const auto x = lower_bound(v.begin(), v.end(), min(n, m));
	const int hol = x - v.begin();
	//cout << *x << " " << hol << " " << v[lower_bound(v.begin(), v.end(), min(n, m)) - v.begin() - 1] << "\n";
	if (hol % 2 == 0) {
		if (min(n, m) < *x) {
			cout << hol + 1 << endl;
		} else {
			cout << hol + 2 << endl;
		}
	} else {
		if (*x == min(n, m) || (*x-1 == min(n, m) && max(n, m) >= *x)) {
			cout << hol + 2 << endl;
		} else {
			cout << hol + 1;
		}
	}

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base75/75
1Elfogadva0/08ms8244 KiB
2Elfogadva0/09ms8248 KiB
3Elfogadva5/59ms8040 KiB
4Elfogadva5/58ms8244 KiB
5Elfogadva5/58ms8244 KiB
6Elfogadva5/58ms8092 KiB
7Elfogadva5/58ms8044 KiB
8Elfogadva5/59ms8244 KiB
9Elfogadva5/58ms8248 KiB
10Elfogadva5/58ms8196 KiB
11Elfogadva7/79ms8100 KiB
12Elfogadva7/78ms8012 KiB
13Elfogadva7/78ms8244 KiB
14Elfogadva7/78ms8692 KiB
15Elfogadva7/78ms8244 KiB