| Task: | Equilateral numbers | 
| Sender: | Sold days | 
| Submission time: | 2024-11-16 13:10:52 +0200 | 
| Language: | C++ (C++11) | 
| Status: | READY | 
| Result: | WRONG ANSWER | 
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | details | 
| #2 | ACCEPTED | 0.01 s | details | 
| #3 | ACCEPTED | 0.01 s | details | 
| #4 | ACCEPTED | 0.01 s | details | 
| #5 | ACCEPTED | 0.01 s | details | 
| #6 | ACCEPTED | 0.02 s | details | 
| #7 | ACCEPTED | 0.01 s | details | 
| #8 | ACCEPTED | 0.05 s | details | 
| #9 | WRONG ANSWER | 0.04 s | details | 
| #10 | WRONG ANSWER | 0.04 s | details | 
| #11 | ACCEPTED | 0.04 s | details | 
| #12 | ACCEPTED | 0.04 s | details | 
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;
}
Test details
Test 1
Verdict: ACCEPTED
| input | 
|---|
| 1 | 
| correct output | 
|---|
| 1 | 
| user output | 
|---|
| 1 | 
Test 2
Verdict: ACCEPTED
| input | 
|---|
| 2 | 
| correct output | 
|---|
| 2 | 
| user output | 
|---|
| 2 | 
Test 3
Verdict: ACCEPTED
| input | 
|---|
| 3 | 
| correct output | 
|---|
| 1 | 
| user output | 
|---|
| 1 | 
Test 4
Verdict: ACCEPTED
| input | 
|---|
| 5 | 
| correct output | 
|---|
| 3 | 
| user output | 
|---|
| 3 | 
Test 5
Verdict: ACCEPTED
| input | 
|---|
| 33 | 
| correct output | 
|---|
| 3 | 
| user output | 
|---|
| 3 | 
Test 6
Verdict: ACCEPTED
| input | 
|---|
| 12385719843 | 
| correct output | 
|---|
| 3 | 
| user output | 
|---|
| 3 | 
Test 7
Verdict: ACCEPTED
| input | 
|---|
| 10935032 | 
| correct output | 
|---|
| 3 | 
| user output | 
|---|
| 3 | 
Test 8
Verdict: ACCEPTED
| input | 
|---|
| 659023495928 | 
| correct output | 
|---|
| 3 | 
| user output | 
|---|
| 3 | 
Test 9
Verdict: WRONG ANSWER
| input | 
|---|
| 913591235689 | 
| correct output | 
|---|
| 2 | 
| user output | 
|---|
| 3 | 
Test 10
Verdict: WRONG ANSWER
| input | 
|---|
| 999999911791 | 
| correct output | 
|---|
| 1 | 
| user output | 
|---|
| 3 | 
Test 11
Verdict: ACCEPTED
| input | 
|---|
| 1000000000000 | 
| correct output | 
|---|
| 2 | 
| user output | 
|---|
| 2 | 
Test 12
Verdict: ACCEPTED
| input | 
|---|
| 999999999998 | 
| correct output | 
|---|
| 3 | 
| user output | 
|---|
| 3 | 
