| Task: | Equilateral numbers | 
| Sender: | Sold days | 
| Submission time: | 2024-11-16 13:10:27 +0200 | 
| Language: | C++ (C++20) | 
| Status: | COMPILE ERROR | 
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:15:17: error: reference to 'numbers' is ambiguous
   15 |                 numbers[i] = (i + 1) * (i + 2) / 2;
      |                 ^~~~~~~
In file included from /usr/include/c++/11/bits/max_size_type.h:37,
                 from /usr/include/c++/11/bits/ranges_base.h:38,
                 from /usr/include/c++/11/string_view:48,
                 from /usr/include/c++/11/bits/basic_string.h:48,
                 from /usr/include/c++/11/string:55,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 f...Code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll MAX_LEN = 1e6 + 1234;
ll numbers[MAX_LEN];
signed main() {
	ll n;
	cin >> n;
	for (ll i = 0; i < MAX_LEN; i++) {
		numbers[i] = (i + 1) * (i + 2) / 2;
	}
	for (ll i = 0; i < MAX_LEN; i++) {
		if (numbers[i] == n) {
			cout << 1 << '\n';
			return 0;
		}
	}
	for (ll i = 0; i < MAX_LEN; i++) {
		if (numbers[i] > n) break;
		auto it = lower_bound(numbers, numbers + MAX_LEN, n - numbers[i]);
		if ((numbers[i] + *it) == n) {
			cout << 2 << '\n';
			return 0;
		}
	}
	cout << 3 << '\n';
	return 0;
}
