| 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;
}
